我覆盖了 viewDidLayoutSubviews
并设置了我的 UIScrollview
的 contentOffset
。但是 contentOffset
总是在 viewDidAppear
之前重置为 (0, 0)。我在 viewWillAppear
、viewDidLayoutSubviews
、viewDidAppear
中打印了 contentOffset
。这是结果。
view will appear
(0.0, 0.0)
view did layout subviews
(-37.5, -133.5)
view did appear
(0.0, 0.0)
我想在 UIScrollView
可见之前设置 contentOffset
。
我试过 self.automaticallyAdjustsScrollViewInsets = false
,但没有用。
最佳答案
因为 viewDidLayoutSubviews 会调用每个 child 做的布局。所以,也许你的 ScrollView 在你设置的时候没有布局。
让我们试试这个。希望它能帮助你。 :)
let indexSubView = 0
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
indexSubView += 1
if indexSubView >= self.view.subviews.count {
//do scrolling
}
}
关于ios - UIScrollView 的 contentOffset 在 viewDidLayoutSubviews 之后被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42824410/