UICollectionView.scrollToItem 设置动画速度
Posted
技术标签:
【中文标题】UICollectionView.scrollToItem 设置动画速度【英文标题】:UICollectionView.scrollToItem set animation speed 【发布时间】:2018-07-24 16:08:56 【问题描述】:将collectionView.scrollToItem
与IndexPath
一起使用时。是否可以设置自定义滚动速度?
【问题讨论】:
【参考方案1】:是的,这是可能的。试试这个:
UIView.animate(withDuration: 5, animations: [weak self] in
self?.collectionView.scrollToItem(at: IndexPath(item: 10, section: 10), at: .middle, animated: false)
)
【讨论】:
这样做时我得到了一个奇怪的效果。如果动画太快,则部分或行尚未加载,因此会出现一瞬间的空白。 只是提醒其他人。不要忘记在 scrollToItem(at:) 调用中将动画值设置为 false。否则就不行了【参考方案2】:在 collectionView 上使用 .layoutIfNeeded() 来防止白色闪烁。
UIView.animate(withDuration: 5, animations: [weak self] in
self?.collectionView.scrollToItem(at: IndexPath(item: 10, section: 10), at: .middle, animated: false)
self?.collectionView.layoutIfNeeded()
)
【讨论】:
虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。 为什么需要layoutIfNeeded()
?以上是关于UICollectionView.scrollToItem 设置动画速度的主要内容,如果未能解决你的问题,请参考以下文章