UIScrollView在第二次打开时不会滚动

时间:2016-11-19 13:18:24

标签: ios swift uiscrollview swift3

我有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中打开另一个帖子,我可以向下滚动但只是第一次打开它。

同样的事情是所有帖子,它们只在第一次打开时滚动。

为什么会发生这种情况以及如何解决?

1 个答案:

答案 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 +
        ...)
}