情况如下:
我有一个具有固定行数的表视图,我希望它在向用户显示时滚动到特定行(无动画)。行的位置基于一些计算(例如:行的顶部必须是顶部的200px),所以我不能使用scrollToRow
。
我尝试使用didMoveToSuperview
并设置contentOffset
,但布局尚未发生,所以我还不知道偏移(在上例中为200px)。
我可以在layoutSubviews
中进行滚动,但该方法被称为多次,看起来效率低下。
有更好/更好的方法吗?
提前致谢!
答案 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
}
}