UIViewController中主视图的框架变为1024x768。
起初,问题并不明显,但后来进行布局时,就变得很麻烦。 如何确保框架保持与.preferredContentSize设置的尺寸相同?
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
override open func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
self.view.frame //When run playground shows 1024x768
}
}
let viewController = MyViewController()
viewController.preferredContentSize = CGSize(width: 375, height: 667) // set to different size
PlaygroundPage.current.liveView = viewController
答案 0 :(得分:3)
自动布局尚未在viewDidAppear()
中完成。
您可以在viewWillAppear
和viewDidLayoutSubviews
中获得帧大小,这两个帧均被调用了多次-但最后一次调用将具有正确的帧大小。 / p>
您也可以在viewDidAppear
中获得它,但是对于您的需求而言可能太迟了。
一种常见的方法是创建一个保存初始大小的var
,然后运行需要viewDidLayoutSubviews
if 当前帧大小与保存的大小(以及更新保存的大小)不同。