Swift5 snapKit用法实践

有没有人讲详细点的,我想讲解下,Swift5 snapKit用法实践
最新回答
谁人都相处来

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: 九宫格类型