2024-10-17 18:28:55
snaptKit 是masonry的swift版本,布局方便,然后我们来看看在项目中都有哪些用处吧~
例子1: 创建一个aview,距父view左边、上边100,右边50,高100
例子2: inset:提供了方便的inset语法,直接约束edgeInsets
例子3: lessThanOrEqualTo: <= 约束边界的最大值, 使bView的centerX <= aView的左边
例子4: greaterThanOrEqualTo: >= 约束边界的最小值, 使aView的左边 >= bView的左边
例子5: lessThanOrEqualTo和greaterThanOrEqualTo结合使用, 注意这个问题 :布局存在冲突或者矛盾的时候,而你恰好使用了lessThanOrEqualTo()或者greaterThanOrEqualTo()的时候,苹果的Auto Layout会在适当的时候给你补齐约束或者可以说优化约束,使你的布局不至于显示错误或者甚至导致程序奔溃。 如下例子,<=100 >=500 显然是不对的,但是并不会crash,Auto Layout会在适当的时候优化约束
例子6: priority-优先级, 注意:优先级最大值为1000,大于1000会导致crash ,如下例子,width最后等于10
例子7: 更新约束 update
例子8: 重新约束-remarke
例子9: dividedBy 除,如下例子,使aView的宽等于父view的1/2,高等于父view的1/3.
例子10: multipliedBy 乘,如下例子,使bView的宽是aView的3倍,高是aView的5倍
例子11: safeAreaLayoutGuide-安全区域的问题,适配齐刘海,要相对于安全区域进行约束
snapKit不支持多视图批量约束,但是我们想使用这种便捷高效的功能,怎么办呢?对snapKit进行扩展 例子12: 多视图随机布局,arr是view数组
例子13: 多视图统一布局,对arr里的view统一设置宽高,然后分别设置各个view的top
例子14: 水平等分
例子15: 垂直等分
例子16: 九宫格类型