为什么UIImageView的框架大于屏幕尺寸?

时间:2018-12-12 17:54:22

标签: ios swift

我有一个单视图应用程序(请参见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)

1 个答案:

答案 0 :(得分:1)

viewDidLoad中尚未发生布局。您到达那里的大小没有意义。忽略它。如果您想知道图像视图的大小,请等到视图控制器的诞生周期中的晚些时候,例如viewDidLayoutSubviews