iOS 布局:约束、边距与引导的深入解析
1. 视觉格式语法概述
在布局中,值可以用逗号分隔并放在括号内,例如 “[v1(>=20@400,<=30)]”。视觉格式语法在多个视图沿同一维度相互布局时优势明显,一个紧凑的视觉格式字符串就能生成多个约束。不过,它未针对近期 iOS 版本更新,有些重要约束类型无法表达,比如将视图固定到安全区域。
2. 将约束作为对象处理
以往示例是创建约束并直接添加到界面,之后便不再关注。但实际中,将约束保存起来以备后续使用很有用,通常存储在属性中。常见场景是后续要大幅更改界面,如插入或移除视图,此时保存多组约束,每组对应特定界面配置会很方便,这样就能轻松随视图交换合适的约束。
以下是一个具体示例,在主视图中创建三个视图 v1、v2 和 v3,分别为红色、黄色和蓝色矩形。运行时会动态移除黄色视图 v2,将蓝色视图移到其位置,之后再插入 v2。为此,创建两组约束,一组描述三个视图都存在时的位置,另一组描述 v2 不存在时 v1 和 v3 的位置。
var v2 : UIView!
var constraintsWith = [NSLayoutConstraint]()
var constraintsWithout = [NSLayoutConstraint]()
// 创建视图
let v1 = UIView()
v1.backgroundColor = .red
v1.translatesAutoresizingMaskIntoConstraints = false
let v2 = UIView()
v2.backgroundColo
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



