UIScrollView 的 contentOffset 在 vi​​ewDidLayoutSubviews 之后重置

Jef*_*hen 5 uiscrollview ios swift

我覆盖viewDidLayoutSubviews并设置contentOffset我的UIScrollview. 但contentOffset之前总是重置为(0, 0) viewDidAppear。我打印contentOffsetviewWillAppear, viewDidLayoutSubviews, viewDidAppear。这是结果。

view will appear
(0.0, 0.0)
view did layout subviews
(-37.5, -133.5)
view did appear
(0.0, 0.0)
Run Code Online (Sandbox Code Playgroud)

contentOffset我想在变得可见之前设置UIScrollView

我尝试过self.automaticallyAdjustsScrollViewInsets = false,但不行。

Lua*_*ran 0

因为 viewDidLayoutSubviews 会调用每个子视图的布局。所以,也许你的滚动视图在你设置的时候没有布局。

让我们试试这个。希望它可以帮助你。:)

let indexSubView = 0
override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    indexSubView += 1
    if indexSubView >= self.view.subviews.count {
      //do scrolling
    }
}  
Run Code Online (Sandbox Code Playgroud)