在我的viewDidLoad
的{{1}}函数中,
UIViewController
它会打印
320.0 375.0
怎么可能? print("\(UIScreen.main.bounds.size.width) \(collectionView.frame.width)")
应该具有相同的宽度,mb较小,但绝对不应该大
情节提要中此视图的设置:
每个约束设置为
所以我在iPhone SE Simulator上进行了测试,但在Storyboard中我有iPhone 8。
但是我相信当我使用自动布局时(应该使视图的大小与安全区域的大小相匹配)完全无关紧要
iPhone 8的宽度为375点,iPhone SE为320:
更新
似乎UICollectionView
在情节提要中返回了您最后选择的设备的大小(非常丑陋)
因此,要获取有关视图的正确数据,我必须获得viewDidLoad
在Android中,如果某个视图的大小尚不可用(视图尚未膨胀),则它仅返回零(宽度== 0,高度== 0),但是在iOS中,您可以从Xcode获取宽度和高度运行时的情节提要...真的吗?
答案 0 :(得分:0)
从情节提要中实例化视图控制器时,其视图的大小将是情节提要中当前设置的大小。在将其添加到视图层次结构后,它将具有与屏幕相同的大小。在添加视图之前会调用viewDidLoad
,因此它的大小仍将与情节提要上的大小相同。您可以获取显示在内部方法viewWillApear
,viewDidAppear
和viewDidLayout
中的大小。请记住,这些方法可能会多次调用。