我刚刚开始研究swift,当我使用制图自动布局视图时,我遇到了问题。这是发生的事情。
我创建一个LoginViewController,将所有约束放在名为" updateConstrains()"的函数中,并在override func viewDidLoad()中调用。如果我将LoginViewController设置为AppDelegate中的窗口rootViewController,它运行良好。
但是如果我把LoginViewController作为UINavigationController的rootViewController,如下所示:
window!.rootViewController = UINavigationController(rootViewController:loginViewController)
它变成这样:
并打印LoginViewController视图的宽度和高度。事实证明:
width = 155,height = 0。
谁能告诉我会发生什么?
答案 0 :(得分:0)
导致此问题的常见原因是忘记在视图上设置translatesAutoresizingMaskIntoConstraints = false
。
在代码中实例化的视图默认情况下将此属性设置为true
。这会根据autoresizingMask
的值创建一组自动布局约束。如果未正确定义自动调整掩码(通常是使用自动布局时),则生成的约束将不是您想要的。
请参阅Apple文档了解translatesAutoresizingMaskIntoConstraints和autoresizingMask