我有一个带有142个单元格的UICollectionView.任何时候都可以看到7.5.
我正在将一个单元从indexPath 0移到100.
但我也想滚动到那个新位置.
下面的代码工作正常.但它动画移动和滚动,但随后将细胞加载到中央/移动的细胞前后.
我认为这是因为细胞是可重复使用的.但是142,我无法预加载所有这些
它不是最好的效果,我想预先加载新位置周围的单元格,在indexPath 100之前和之后4,然后查看移动和滚动的动画.你能帮帮忙吗?
UIView.animateWithDuration(animationSpeed,animations: {() -> Void in self.collectionView.layoutIfNeeded() self.collectionView.scrollToItemAtIndexPath(NSIndexPath(forItem:self.indexPathSelected.row,inSection:0),atScrollPosition: .CenteredHorizontally,animated: true) })
解决方法
Swift 3.0 OR up
add “view.layoutIfNeeded()” before implementing scrollToItem method,Ideally in viewWillAppear
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) view.layoutIfNeeded() colView.scrollToItem(at: IndexPath(item: 4,section: 0),at: .centeredHorizontally,animated: true)}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。