我无法理解scrollRectToVisible的行为:animated:with scrollView.contentInset set

时间:2015-07-30 15:17:14

标签: ios uiscrollview

scrollView.contentInset = UIEdgeInsetsZero时,一切都很好,所以当我手动设置scrollView.contentInset时,我遇到了问题。

为了描述问题,我将做一个简单的演示。

拖动滚动视图(也可以对其进行引用,并将其背景颜色设置为与白色不同,说红色)到场景中,然后将视图拖到滚动视图上(不要不要设置它的背景颜色,比如说绿色),它们的大小相同并且完全重叠。文件大纲如下:

enter image description here

然后是一些代码:

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
}

效果如下,正如我所料:

enter image description here

但如果我将最后一行代码更改为

scrollView.scrollRectToVisible(CGRectMake(0, 0, scrollView.bounds.width, scrollView.bounds.height - (bottom + 1)), animated: false)

效果是这样的:

enter image description here

我只改变了一点!我期待的是

enter image description here

如何解释这个?

0 个答案:

没有答案