获取不可变的scrollView的实际大小非常简单(也许你可以将“实际大小”解释为“scrollView可以显示内容的正方形”),因为它是不可变的( 没有布局约束)并且您已经在代码或 Interface Builder 中设置了大小。
但是如果我创建一个带有 autoLayout Constraints 的 Scroll。完成此操作后,我尝试使用不同的 iPhone 模拟器(6s+、6s、5s,)运行该程序并打印以下属性
[myScroll.frame.width; myScroll.frame.height]
,
[myScroll.bounds.width; myScroll.bounds.heigth]
或
[myScroll.contentSize.width; myScroll.contentSize.height]
它们要么是 (0,0) 要么是 (immutableNum,immutableNum)
Obviously, the size can't be zero or any immutable numbers when iPhone size changed, right?
那么 a 如何访问 scrollView 的真实大小呢?或者我应该问我应该访问哪个属性?
感谢您的观看!
最佳答案
当您需要使用自动布局访问任何 UI 尺寸或位置时,您必须在实际计算布局后执行此操作。
根据经验,最好的地方是在 viewDidLayoutSubviews
方法中。
在 viewDidLoad
中,还没有计算布局。这就是为什么您会得到零值或奇怪的值。
关于ios - 如何获得在不同 iPhone 模拟器中使用自动布局的 scrollView 实际大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33299922/