프로그래밍 방식으로 생성된 UICollectionView가 스크롤되지 않습니다.

StackOverflow https://stackoverflow.com//questions/12698244

  •  12-12-2019
  •  | 
  •  

문제

나는 다음을 사용하여 수평 선택기를 만들고 있습니다. UICollectionView.충분히 간단합니다.ㅏ UIViewUICollectionView 다음을 사용하여 프로그래밍 방식으로 생성됨 UICollectionViewFlowLayout 한 섹션에서는 스크롤이 가로로 설정됩니다.화면에 나타나며 올바른 셀에 올바른 데이터가 포함되어 있습니다.하지만 스크롤되지는 않습니다. 사실 사용자 상호작용에 전혀 반응하지 않습니다.

뷰의 초기화 프로그램은 다음과 같습니다.

- (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, 그러나 그것은 아무런 차이를 만들지 않았습니다. UserInteractionEnabled 로 설정되어 있습니다 YES 기본적으로).FWIW, 컬렉션 뷰는 표준을 사용합니다. UICollectionViewCell와 함께 UILabel그들의 항목에 추가되었습니다 contentView하위 뷰로 사용됩니다.

이것이 스크롤되지 않는 이유에 대해 생각해 보셨나요?모든 도움에 감사드립니다.

도움이 되었습니까?

해결책

좋아, 이것은 내 입장에서는 멍청하고 고치기 쉬운 것으로 판명되었습니다.컬렉션 뷰의 프레임을 상위 뷰의 프레임으로 설정했습니다. frame 그보다는 bounds.이로 인해 모든 종류의 자동 레이아웃 문제가 발생하고 터치 이벤트가 단순히 등록되지 않게 되었습니다.이제 모두 해결되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top