如果我在iOS中以编程方式实现AutoLayout,那么使用initWithFrame方法是否正确?如果不是如何初始化首选大小的视图?
最好避免initWithFrame,除非你别无选择。使用自动布局,方法是定义两个指定宽度和高度的约束。有不同的方法可以执行此操作,但如果您以编程方式执行此操作,请在updateViewConstraints视图控制器的方法或updateConstraints视图的方法中检查约束是否已创建,如果没有,请将它们添加到您的视图中。
例如
[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]];
Run Code Online (Sandbox Code Playgroud)
也就是说,最好使用 Interface Builder 来完成此操作。一旦您习惯了它(确实需要一些时间来习惯),您会发现它非常节省时间,并且比在代码中定义约束要好得多。
| 归档时间: |
|
| 查看次数: |
3519 次 |
| 最近记录: |