snapKit自动布局库前身是OC版的Masonry

烈酒焚心 提交于 2019-12-09 19:54:34

使用方法是通过snp_makeConstrainsts方法给view添加约束,分别有边距、宽、高、坐上右下距离、基准线。同时,添加过约束后可以有修正,修正有位移修正(inset、offset)和倍率修正(multipliedBy)

iconView.snp_makeConstraints { (make) in

            make.edges.equalTo(contentView)

        }

    语法一般是:make.equalTo或make.greaterThanOrEqualTo或make.lessThanOrEqualTo+倍数和位移修正

.equalTo:等于

.lessThanOrEqualTo:小于等于

.greaterThanOrEqualTo:大于等于

注意:使用snp_makeConstrainsts方法的元素必须事先添加到父元素中

2.约束条件参数支持类型

(1)视图属性(ViewAttribute)

视图属性(ViewAttribute) 布局属性(NSLayoutAttribute)
view.snp_left NSLayoutAttribute.Left
view.snp_right NSLayoutAttribute.Right
view.snp_top NSLayoutAttribute.Top
view.snp_bottom NSLayoutAttribute.Bottom
view.snp_leading NSLayoutAttribute.Leading
view.snp_trailing NSLayoutAttribute.Trailing
view.snp_width NSLayoutAttribute.Width
view.snp_height NSLayoutAttribute.Height
view.snp_centerX NSLayoutAttribute.CenterX
view.snp_centerY NSLayoutAttribute.CenterY
view.snp_baseline NSLayoutAttribute.Baseline

1

2

//使当前视图对象的中心x坐标小于等于视图view2的左边的x坐标

make.centerX.lessThanOrEqualTo(view2.snp_left)

 

(2)视图关系(UIView/NSView) 

比如想让view.left 大于等于 label.left:

1

make.left.greaterThanOrEqualTo(label)

这个其实等价于:

1

make.left.greaterThanOrEqualTo(label.snp_left)

 

(3)严格检测(Strick Checks)
比如将宽度和高度属性设置为常量值:

1

2

3

make.height.equalTo(20)

make.width.equalTo(20)

make.top.equalTo(42)

3、给视图的各种属性设置约束

(1)width、height属性

自动布局允许宽度和高度设置为常量值

make.height.equalTo(20)

make.width.equalTo(self.buttonSize.width)

//当前视图与label的顶部齐平

make.top.equalTo(label.snp_top)

(2)left、right、top、centerX、centerY等其他属性
这些属性直接设置常量值,表示他们相对于父容器的相对约束条件。

 

 

http://www.hangge.com/blog/cache/detail_1097.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!