以编程方式创建的UICollectionView不会滚动

我正在使用UICollectionView制作一个水平选择器。 这很简单:使用UICollectionViewFlowLayout以编程UICollectionView创建UICollectionView ,使用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,集合视图使用标准的UICollectionViewCellUILabel作为子视图添加到他们的contentView

有没有想过为什么这不滚动? 任何和所有帮助非常感谢。

好吧,这对我来说既愚蠢又容易修复。 我将集合视图的框架设置为其父视图的frame而不是其bounds 。 这导致了各种自动布局问题,导致触摸事件无法注册。 现在全部修好了。