【发布时间】:2017-04-03 06:22:29
【问题描述】:
我有 UIViewController,它有 UIScrollView,里面有很多标签和 ImageView,我使用以下方法设置 UIScrollView 的高度:
override func viewDidLayoutSubviews() {
scrollView.contentSize = CGSize(width: self.contentView.frame.width, height:
self.labelTitle1.frame.height +
self.labelTitle2.frame.height +
self.labelTitle3.frame.height +
...
self.imageView1.frame.height +
self.imageView2.frame.height +
self.imageView3.frame.height +
...)
}
这在我打开 UIViewController 时第一次起作用,但是如果我使用 UINavigationController 返回然后使用相同的帖子再次打开该 UIViewController,我将无法向下滚动。
如果我随后在该 UIViewController 中打开另一个帖子,我可以向下滚动,但只是第一次打开它。
所有帖子都是一样的,它们只在第一次打开时滚动。
为什么会发生这种情况以及如何解决?
【问题讨论】:
-
尝试在
viewWillAppear()中调用viewDidLayoutSubviews() -
@Danoram 我试过了,但还是不能滚动
-
尝试在
scrollView.contentSize = ...之前添加super.viewDidLayoutSubviews() -
@Danoram 我添加了
super.viewDidLayoutSubviews()但什么也没发生,我仍然无法滚动 -
好的,试试把这段代码移到
viewDidAppear
标签: ios swift uiscrollview swift3