iOS View Size iPad



我有一个关于iPad上的UIViews的简短问题。我在UIViewController的主视图顶部创建了一个新视图,并添加了值为0的左,右,顶部和底部约束,以覆盖整个视图。

运行应用程序后,正如预期的那样,我在完整的主视图顶部获得了灰色视图。

奇怪的是,当我将它们打印到 stdout 时,我得到了两个视图的框架宽度和高度的不同值:

主视图:宽度: 768.0, 高度: 1024.0第二种观点:宽度: 375.0, 高度: 667.0

我不明白为什么这些值不相等,因为两个视图在运行时具有相同的大小,并且灰色的第二个视图大于 375 的宽度。

我的主要方法是在第二个灰色视图上添加一个AVPlayerLayer作为背景视频。但是当我这样做时,视频并没有覆盖全屏,而是只覆盖 375x667。

import UIKit
class ViewController: UIViewController {
    @IBOutlet var secondView: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        print("Main View:")
        print("Width: (self.view.frame.width), Height: (self.view.frame.height)")
        print("Second View:")
        print("Width: (self.secondView.frame.width), Height: (self.secondView.frame.height)")
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

模拟器

问题是viewDidLoad在视图达到其最终大小之前运行。此时视图存在;它还没有被布置出来。直到viewDidLayoutSubviews才会发生这种情况。

最新更新