繁体   English   中英

iOS:UICollectionView在单元格之间停止

[英]iOS: UICollectionView stops between cells

我正在实现UICollectionView,但是当我滚动UICollectionView时,它们会在单元格之间停止:

在此处输入图片说明 这是muy代码:

- (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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM