当scrollView.contentInset = UIEdgeInsetsZero
时,一切都很好,所以当我手动设置scrollView.contentInset
时,我遇到了问题。
为了描述问题,我将做一个简单的演示。
拖动滚动视图(也可以对其进行引用,并将其背景颜色设置为与白色不同,说红色)到场景中,然后将视图拖到滚动视图上(不要不要设置它的背景颜色,比如说绿色),它们的大小相同并且完全重叠。文件大纲如下:
然后是一些代码:
let top: CGFloat = 100
let bottom: CGFloat = 50
override func viewDidLoad() {
super.viewDidLoad()
scrollView.contentSize = CGSizeMake(scrollView.bounds.width, 1000)
scrollView.contentInset = UIEdgeInsetsMake(top, 0, bottom, 0)
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
scrollView.scrollRectToVisible(CGRectMake(0, 0, scrollView.bounds.width, scrollView.bounds.height - bottom), animated: false) // this line will be change
}
效果如下,正如我所料:
但如果我将最后一行代码更改为
scrollView.scrollRectToVisible(CGRectMake(0, 0, scrollView.bounds.width, scrollView.bounds.height - (bottom + 1)), animated: false)
效果是这样的:
我只改变了一点!我期待的是
如何解释这个?