Swift5 snapKit用法实践

Swift5 snapKit用法实践,第1张

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

UIScrollView是依靠与其子视图(subview)之间的约束来确定ContentSize的大小 ,如果不设置好子view的宽高度约束的话,就会造成UISCrollView显示异常。

对于UIScrollView的subview来说,它的leading/trailing/top/bottom的space是相对于UIScrollView的contentSize而不是bounds来确定的,换句话说:UIScrollView与其subview之间相对位置的约束并不会直接用于frame的计算,而是会转化为对ContentSize的计算。(摘自

: https://blog.csdn.net/longshihua/java/article/details/78441466 )

没有指定greenView的 宽高, 无法显示scrollView

2、对subviews指定宽高,让最底部的view设置对scrollView的约束,可显示,但是会有布局异常。

对scrollView 添加contentView,让subviews添加对contentView的约束,而contentView只需处理contentSize的宽度


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11325905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存