我有一个CollectionViewController,里面有10个单元格。
但是当我运行应用程序时,它会在底部显示单元格,但我想在viewDidLoad的顶部单元格中显示它。
我尝试了很多东西,但它没有用。
如何解决?
答案 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];
希望它会帮助你。