CollectionView滚动到顶部

时间:2016-09-14 12:46:53

标签: ios objective-c xcode scroll uicollectionview

我有一个CollectionViewController,里面有10个单元格。

但是当我运行应用程序时,它会在底部显示单元格,但我想在viewDidLoad的顶部单元格中显示它。

我尝试了很多东西,但它没有用。

如何解决?

8 个答案:

答案 0 :(得分:10)

在swift 3中:在reloadData()

之后
  self.collectionView.setContentOffset(CGPoint(x:0,y:0), animated: true)

答案 1 :(得分:6)

重新加载集合视图后添加此行。

[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:NO];

修改

这里只想添加一个点,如果collectionView数据源具有ZERO元素,或者它是nil,那么上面的代码将不起作用,可能会使您的应用程序崩溃。

写入条件以检查数据源是否可用!

if (self.dataArray.count > 0) {
    [self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:NO];
}

其中,dataArray是您的数据源。

答案 2 :(得分:2)

在重新加载集合视图后添加以下代码:

迅速

yourCollectionView.setContentOffset(CGPoint.zero, animated: true)

objective-c

[yourCollectionView setContentOffset:CGPointZero animated:YES];

答案 3 :(得分:0)

请尝试这个

[self.yourcollectionview scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:NO];

答案 4 :(得分:0)

将动画选项设置为false。在您的收藏夹视图动画过程中,可能正在运行某些视图动画。

collectionView.scrollToItem(at: indexPath, at: .top, animated: false)

答案 5 :(得分:0)

它工作正常……

collectionView.setContentOffset(.zero, animated: false)

答案 6 :(得分:0)

斯威夫特 4 斯威夫特 5

其实就是干活

collectionView.setContentOffset(.zero, animated: false)

但是,如果您的 CollectionView 实现 .contentInset 或外边距,假设设置了顶部和底部边距 16,则此代码实际上将返回顶部。

collectionView.setContentOffset(CGPoint(x: 0, y: -16), animated: true)

答案 7 :(得分:-7)

要显示collectionView中顶部单元格的数据,您可以使用一种方法

[collectionView setScrollsToTop:YES];

希望它会帮助你。