我有一个单视图应用程序(请参见layout)。布局是使用iphone x完成的。我有一个位于安全区域内的中央UIImageView,以及一个具有一些UIButton的自定义底部UIView。当我在iPhone 6 plus(没有缺口)上运行应用程序并运行以下代码时,我获得了UIImage视图的框架,该框架大于屏幕尺寸,并且框架的顶部插图为44。我不知道这怎么可能?
override func viewDidLoad() {
super.viewDidLoad()
print("self.imgPreViewOutlet.frame: \(self.imgPreViewOutlet.frame)")
print("self.imgPreViewOutlet.bounds: \(self.imgPreViewOutlet.bounds)")
print("UIScreen.main.bounds: \(UIScreen.main.bounds)")
}
控制台:
self.imgPreViewOutlet.frame: (0.0, 44.0, 414.0, 758.0)
self.imgPreViewOutlet.bounds: (0.0, 0.0, 414.0, 758.0)
UIScreen.main.bounds: (0.0, 0.0, 414.0, 736.0)
答案 0 :(得分:1)
viewDidLoad
中尚未发生布局。您到达那里的大小没有意义。忽略它。如果您想知道图像视图的大小,请等到视图控制器的诞生周期中的晚些时候,例如viewDidLayoutSubviews
。