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的宽度
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)