初始化后何时/何处滚动表格视图?

时间:2017-03-12 04:05:27

标签: ios uitableview

情况如下:

我有一个具有固定行数的表视图,我希望它在向用户显示时滚动到特定行(无动画)。行的位置基于一些计算(例如:行的顶部必须是顶部的200px),所以我不能使用scrollToRow

我尝试使用didMoveToSuperview并设置contentOffset,但布局尚未发生,所以我还不知道偏移(在上例中为200px)。

我可以在layoutSubviews中进行滚动,但该方法被称为多次,看起来效率低下。

有更好/更好的方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

你能试试didMoveToWindow吗?我认为它的另一个功能是layoutSubviews。每个子视图布局时会多次。通过使用标志,您可以使用它。

override func layoutSubviews() {
    super.layoutSubviews()
    if !didScrolling {
       didScrolling = true
       //do scrolling
    }
}

 override func layoutSubviews() {
    super.layoutSubviews()

    indexSubView += 1
    if indexSubView >= self.subviews.count {
       //do scrolling
    }
 }