如果我在 iOS 中以编程方式实现自动布局,使用 initWithFrame 方法是否合适?如果不是如何初始化首选大小的 View ?
最佳答案
除非别无选择,否则最好避免使用 initWithFrame
。使用自动布局,方法是定义两个指定宽度和高度的约束。有不同的方法可以做到这一点,但如果您以编程方式进行,请在 View Controller 的 updateViewConstraints
方法或 View 的 updateConstraints
方法中检查约束是否已经创建,如果没有,请将它们添加到您的 View 中。
例如
[myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[_mySubView]-(200)-|"
options:0
metrics:nil
views:_myViewsDictionary]];
[myConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[_mySubView(100)]-|"
options:0
metrics:nil
views:_myViewsDictionary]];
也就是说,最好使用 Interface Builder 来完成。一旦你习惯了它——它确实需要一些时间来适应——你会发现它非常节省时间,而且比在代码中定义约束要好得多。
关于ios - 使用 initWithFrame 自动布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700133/