Swift - 无法理解UIScrollView的contentSize

时间:2014-11-13 22:11:16

标签: ios swift uiscrollview

您好我在故事板中设置UIScrollView(视图大小相同)并在我的代码中按住它拖动它。
现在我使用我的一个简单算法以编程方式创建了一个按钮 然后我试着

println(button.frame.origin.y)

打印 1700 然后我试了

println(button.frame.height)

打印 142.2 (也来自算法)。所以我想在滚动时达到的高度是1700 + 142.2 = 1842.2
所以我试图以这种方式硬编码内容大小

self.scrollView.contentSize = CGSize(width:self.view.bounds.size.width, height:2000)

但是当我运行应用程序时,我可以滚动不超过按钮的中间位置,这是数字
1700 + 142.2/2 = 1771.1

为什么这样呢? 我做了这一切,试图了解这个UIScrollView是如何工作的,但我无法理解。

修改 添加了截图 在气泡内部有button.frame.origin.y值。这是我可以滚动离开屏幕的最大值。

enter image description here

1 个答案:

答案 0 :(得分:2)

这可能与滚动视图插图有关 - 内容边缘始终显示在导航和工具栏下。

您需要通过阅读滚动视图的contentInset属性或使用界面构建器手动解决此问题。

/Users/apple/Library/Mobile Documents/com~apple~Preview/Documents/Untitled 3.png

enter image description here

滚动视图参考:

https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/UIScrollView_pg/CreatingBasicScrollViews/CreatingBasicScrollViews.html