2012-10-02 3 views
3

UICollectionView을 사용하여 가로 방향 선택 도구를 만들고 있습니다. 간단합니다. UIView은 이고 프로그래밍 방식으로 생성되며 UICollectionViewFlowLayout 섹션 하나는 수평으로 스크롤됩니다. 그것은 화면에 나타나고 정확한 셀에 정확한 데이터로 완성됩니다. 하지만 스크롤하지 않습니다. 사실 사용자 상호 작용에는 전혀 반응하지 않습니다.UICollectionView를 프로그래밍 방식으로 만들지 않았습니다.

다음은 뷰의 초기화이다 : 나는 YESUserInteractionEnabled 설정 프로그래밍 시도

- (id)initWithFrame:(CGRect)frame andItemData:(NSArray *)itemData 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     _itemData = itemData; 

     UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; 
     [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; 
     [flowLayout setItemSize:CGSizeMake(kCellWidth, kCellHeight)]; 
     [flowLayout setMinimumInteritemSpacing:0.f]; 
     [flowLayout setMinimumLineSpacing:0.f]; 

     _collectionView = [[UICollectionView alloc] initWithFrame:[self frame] collectionViewLayout:flowLayout]; 
     [_collectionView setDataSource:self]; 
     [_collectionView setDelegate:self]; 
     [_collectionView setBounces:NO]; 
     [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"HorizontalPickerCell"]; 
     [self addSubview:_collectionView]; 
    } 
    return self; 
} 

,하지만 어떤 차이를하지 않았다 (도 UserInteractionEnabled은 기본적으로 YES로 설정되어 있기 때문에 그것이 있어야한다). FWIW 컬렉션보기에서는 표준 UICollectionViewCell (UILabel)을 서브보기로 contentView에 추가했습니다.

왜 스크롤되지 않는지 생각해보십시오. 모든 도움을 많이 주셨습니다.

+0

새 프로젝트에 코드를 놓고 스크롤했습니다. 스크롤해야하는 충분한 데이터가 있는지 확인하십시오. – rdelmar

+0

@rdelmar 네, 충분합니다. itemData에는 21 개의 NSNumbers가 있습니다 (0에서 100까지, 5 초씩). 나는 그것이 당신을 위해 일해 주어서 기쁘다. 그리고 그것은 나의 문제가 아마 다른 곳에 있음을 의미한다. –

+0

바운스 NO로 설정 하시겠습니까? 너 미쳤어 ? /농담 – Dimillian

답변

6

좋아,이 부분은 내 부분에 바보 같아서 쉽게 해결할 수 있습니다. 컬렉션보기의 프레임을 bounds이 아닌 상위보기의 frame으로 설정했습니다. 이로 인해 모든 종류의 자동 레이아웃 문제가 발생하고 터치 이벤트가 등록되지 않게되었습니다. 모두 고쳐졌습니다.

관련 문제