我遇到问题让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
内设置放置对象的视图的高度。如果有人有任何想法,仍然没有解决问题的起点吗?
答案 0 :(得分:0)
如果在代码中放置断点,您会注意到viewDidLayoutSubviews在 viewDidLoad之后被称为。实际上,当您在viewDidLoad中设置scrollView.contentSize时,将不会加载视图框架,并且由于此CGSize(width:view.bounds.width,height:1200)可能会将内容大小设置为{0,1200} 。
您希望在更新scrollView框架后,在viewDidLayoutSubviews方法中将contentSize代码移动到。
关于问题的第一部分,您可能需要查看UIScrollView的contentInset属性。
希望这有帮助!