7、iOS 布局:约束、边距与引导的深入解析

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值