我有UIViewController,里面有很多Labels和ImageViews的UIScrollView,我使用以下方法设置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中打开另一个帖子,我可以向下滚动但只是第一次打开它。
同样的事情是所有帖子,它们只在第一次打开时滚动。
为什么会发生这种情况以及如何解决?
答案 0 :(得分:1)
将代码移至viewDidAppear()
,以便最终得到类似
override func viewDidAppear() {
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 +
...)
}