我尝试了很多解决方案,但都没有用。问题很简单——如何在 viewDidLoad
、viewWillAppear
或 viewDidAppear
期间向下滚动而没有视觉(跳跃)效果?
我现在拥有的:
public override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if (!self.layoutFlag) {
if let lastCell: IndexPath = self.lastCellIndexPath {
self.collectionView?.scrollToItem(at: lastCell, at: UICollectionViewScrollPosition.bottom, animated: true)
self.layoutFlag = true
}
}
}
最佳答案
我发现只有一种设置初始滚动位置的方法:
在viewDidLayoutSubviews中调用我的滚动函数
var isScrolled = false
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if !isScrolled && levelCollectionView.visibleCells.count > 0 {
isScrolled = true
// scroll
}
}
它看起来不是正确的答案,但它有效
关于ios - 设置 Collection View 的初始滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42888605/