viewDidLoad
我有一个在 a 的方法中设置的 UIScrollView UIViewController
(我称之为 a ScrollViewController
)。滚动视图包含水平内容页面(类似于本机天气应用程序)。
显示滚动视图时,应该可以选择它从哪个页面开始。我的模式是这样的:
- 初始化一个
ScrollViewController
。这里没什么大事。currentPage
属性默认为 0 。 - 设置
scrollViewController.currentPage
为所需的页码。 - 在
viewDidLoad
中ScrollViewController
,阅读self.currentPage
并使用scrollToRect
或setContentOffset
相应地滚动。
滚动实现似乎很好,因为我在其他地方使用相同的代码来跳转到某些页面。但是在第一次加载时,什么都没有发生(也就是说,滚动视图没有滚动到所需的页面)。
我想我找到了原因 - 似乎contentSize
滚动视图(由自动布局记住)的 0 期间为 0 viewDidLoad
,这似乎阻止了滚动。在 viewWillAppear 期间它也为零。只有viewDidAppear
滚动才能起作用,这当然会带来奇怪的用户体验。
我该如何解决这个问题?以某种方式强制布局是否明智viewDidLoad
?还是其他方法?