如何正确设置UIScrollView高度

时间:2015-04-25 20:19:25

标签: ios swift uiscrollview uibutton

我遇到问题让UIScrollView按照我预期的方式滚动。我希望它高达1,200分,我已经设法让它滚动到这个高度,但是我遇到了一些问题。

首先,内容将在屏幕下方进一步开始。它看起来像是在导航栏下方64个像素(向导栏的高度)向下滚动。我怎样才能让它从导航栏下方开始?

此外,我在视图中有三个按钮,在点按时不会调用它们的功能。我假设这是因为我以某种方式犯了UIScrollView的大小错误。如果我在主框架内移动它们(屏幕的大小),按钮就可以工作。

这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    scrollView.contentSize = CGSize(width: view.bounds.width, height: 1200)
}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    scrollView.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.frame.height)
}

更新

我用按钮解决了这个问题。我忘了在UIScrollView内设置放置对象的视图的高度。如果有人有任何想法,仍然没有解决问题的起点吗?

1 个答案:

答案 0 :(得分:0)

如果在代码中放置断点,您会注意到viewDidLayoutSubviews在 viewDidLoad之后被称为。实际上,当您在viewDidLoad中设置scrollView.contentSize时,将不会加载视图框架,并且由于此CGSize(width:view.bounds.width,height:1200)可能会将内容大小设置为{0,1200} 。

您希望在更新scrollView框架后,在viewDidLayoutSubviews方法中将contentSize代码移动到

关于问题的第一部分,您可能需要查看UIScrollView的contentInset属性。

希望这有帮助!