美文网首页
UICollectionView中scrollToItemAtI

UICollectionView中scrollToItemAtI

作者: 落叶兮兮 | 来源:发表于2020-06-16 10:14 被阅读0次

    这次在做无限轮播的控件封装时,需要将初始位置放置在collectionView的中间,我总共设置了100个cell,所以需要将初始位置设置为第50个cell,我和往常一样,在setSelectIndex方中使用这两个方法,代码如下:

          [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:49 
        inSection:0] atScrollPosition:UICollectionViewScrollPositionLeft animated:NO];  
    

    发现collectionView并不会滚动到相应的位置,之后我又使用另外一种滚动方法,发现结果仍然是这样,相应的代码如下:

        [self.collectionView selectItemAtIndexPath:[NSIndexPath indexPathForRow:49 inSection:0]
        animated:YES scrollPosition:UICollectionViewScrollPositionLeft];
    

    之后我想的是可能是collectionView只能滚动到可见的cell上,所以将上面索引改为3和4分别实验(3在屏幕上可见,4在屏幕上不可见),结果确实3可以滑动到,4滑动会失效,但是后来看到文档并没有这个说法,之后查阅资料发现,
    每当UICollectionView显示它的subView之前调用scrollToItemAtIndexPath: atScrollPosition:
    Animated方法,是不会执行的。
    所以后来将代码写在layoutSubViews中,结果发现这两个滚动方法都可以正常执行,在此记录一下。

    相关文章

      网友评论

          本文标题:UICollectionView中scrollToItemAtI

          本文链接:https://www.haomeiwen.com/subject/lrdlxktx.html