[英]iOS: UICollectionView stops between cells
我正在实现UICollectionView,但是当我滚动UICollectionView时,它们会在单元格之间停止:
- (void)viewDidLoad {
[super viewDidLoad];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
[layout setItemSize:CGSizeMake(self.view.frame.size.width, self.view.frame.size.height)];
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
[self.collectionView setCollectionViewLayout:layout];
self.collectionView.bounces = YES;
self.collectionView.allowsMultipleSelection = YES;
self.collectionView.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
}
我对你们的问题是,如何停止UICollectionView以查看完整的单元格?
非常感谢您的帮助。
要一次滚动一个单元格,可以使用pagingEnabled = YES
并将单元格之间的填充设置为零:
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 0; // No space between cells
}
请检查该问题的答案,以获取有关同一主题的详细讨论。
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 20; // No space between cells
}
使用此delegate
方法,并在collectionView
section
之间添加空间。
正确的方法是使用targetContentOffset(forProposedContentOffset:withScrollingVelocit:)
。
基本上,您需要计算要使集合视图结束的偏移量,因此您需要根据目标偏移量和速度来确定最近的像元的偏移量。
要正确完成这可能是一项复杂的任务,但是我发现有几个地方可以解释整个问题。
您可以查看Apple的iOS版“集合视图编程指南”,其中解释了如何构建自己的实现。
尽管本教程说明了如何将单元居中放置在中间,但本教程也可能会有所帮助,可以对其进行修改以适合此用例。
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.