我有一个UIScrollView设置在viewDidLoad
方法UIViewController
(我将其称为ScrollViewController
)。滚动视图包含水平内容页面(类似于本地天气应用)。如何使用自动布局在载入时滚动UIScrollView
显示滚动视图时,应该可以选择启动哪个页面。我的模式是这样的:
- init a
ScrollViewController
。这里没有什么发生。 AcurrentPage
属性默认为0. - 将
scrollViewController.currentPage
设置为所需的页码。 viewDidLoad
的ScrollViewController
,读self.currentPage
并使用scrollToRect
或setContentOffset
相应地滚动。
滚动实现看起来很好,因为我在其他地方使用相同的代码跳转到某些页面。但在第一次加载时,没有任何事情发生(即,滚动视图不滚动到所需的页面)。
我认为我已经找到了原因 - 它似乎是滚动视图的contentSize
(这是由自动版式衍生记住)期间viewDidLoad
是0,这似乎这防止滚动。在viewWillAppear期间它也是零。只有在viewDidAppear
的滚动工作,这当然使奇怪的用户体验。
我该如何解决这个问题?以某种方式强制布局viewDidLoad
是明智的吗?或者其他一些方法?