【发布时间】:2023-04-01 01:56:01
【问题描述】:
我正在使用UICollectionView 制作一个水平选择器。这很简单:UIView 和 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,集合视图使用标准 UICollectionViewCells 并将 UILabels 添加到其 contentViews 作为子视图。
关于为什么这不是滚动的任何想法?非常感谢任何和所有帮助。
【问题讨论】:
-
我把你的代码放到了一个新项目中,它确实滚动了。你确定你有足够的数据让它需要滚动吗?
-
@rdelmar 是的,绰绰有余。 itemData 中有 21 个 NSNumber(从 0 到 100,增加 5s)。不过,我很高兴它对你有用,这意味着我的问题可能在其他地方。
-
设置反弹 NO ?你疯了吗 ? /笑话
标签: ios uicollectionview