【发布时间】:2019-09-04 04:11:30
【问题描述】:
在我的UIViewController 的viewDidLoad 函数中,我调用了
print("\(UIScreen.main.bounds.size.width) \(collectionView.frame.width)")
它会打印出来
320.0 375.0
这怎么可能? UICollectionView 应该是一样的宽度,mb 更小但绝对不会更大
情节提要中此视图的设置:
每个约束设置为
所以我在 iPhone SE 模拟器上对其进行了测试,但在 Storyboard 中我使用的是 iPhone 8。
但我相信,当我使用自动布局(使我的视图大小与安全区域的大小匹配的约束)时,这根本不重要
iPhone 8 宽度为 375 点,iPhone SE 为 320:
更新
似乎viewDidLoad 在情节提要中返回了您最后选择的设备的大小(非常丑陋)
因此,要获得有关视图的正确数据,我必须在 viewDidAppear 中获取大小
在 Android 中,如果某些视图的大小尚不可用(视图尚未膨胀),则它只会返回零(宽度 == 0,高度 == 0),但在 iOS 中,您可以从 Xcode 获得宽度和高度运行时的情节提要...真的吗?
【问题讨论】:
标签: ios uiview autolayout constraints frame