ios - 设置 Collection View 的初始滚动位置

标签 ios swift uicollectionview

我尝试了很多解决方案,但都没有用。问题很简单——如何在 viewDidLoadviewWillAppearviewDidAppear 期间向下滚动而没有视觉(跳跃)效果?

我现在拥有的:

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/

相关文章:

ios - GridView (UICollectionView)的偏移量随着分页滚动而逐渐变化

ios - 为什么标签栏项目的角标(Badge)没有改变

ios - 在参数 Swift 中传递当前位置

android - 未处理的异常 : PlatformException(Failed to run model, 解释器忙,java.lang.RuntimeException:解释器忙于 flutter

ios - 无法预启动 appium 并且应用程序未使用 appium 安装在 iPhone 真实设备中

ios - 施加力后的 ARKit 获取节点的位置

iOS:即使单元格可见,cellForItemAtIndexPath 也返回 nil

ios - 在 Swift 中使用 OHHTTPStubs 测试请求体

ios - 使用 CABasicAnimation 移动时无法使用 UIButton

ios - 水平方向自动移动 UICollectionCells