加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – UICollectionview scrollToItemAtIndexPath,在动画完成

发布时间:2020-12-14 04:29:59 所属栏目:百科 来源:网络整理
导读:我有一个带有142个单元格的UICollectionView.任何时候都可以看到7.5. 我正在将一个单元从indexPath 0移到100. 但我也想滚动到那个新位置. 下面的代码工作正常.但它动画移动和滚动,但随后将细胞加载到中央/移动的细胞前后. 我认为这是因为细胞是可重复使用的.
我有一个带有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)}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读