ios - UIScrollView 的 contentOffset 在 vi​​ewDidLayoutSubviews 之后被重置

标签 ios swift uiscrollview

我覆盖了 viewDidLayoutSubviews 并设置了我的 UIScrollviewcontentOffset。但是 contentOffset 总是在 viewDidAppear 之前重置为 (0, 0)。我在 viewWillAppearviewDidLayoutSubviewsviewDidAppear 中打印了 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 在 vi​​ewDidLayoutSubviews 之后被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42824410/

相关文章:

swift - 我怎样才能强制我的文本框在写作时不移动 "camera"(焦点)

ios - 如何从 NSURLSessionDataTask 获取状态码?

iphone - (iphone)以编程方式 ScrollView 后强制调用scrollViewDidEndDecelerating?

ios - xcode中的约束错误

iphone - 合并具有相同 firedate 的 UILocalNotifications

ios - Cocos2d。 Sprite 消失

ios - 如何为我的 iOS 应用程序集成维护模式

ios - 单元格数据未显示在 UITableView 中?

iphone - UIScrollView + UIWebView = 没有滚动到顶部

ios - Objective C - UI 列表高度