snapKit自動佈局庫前身是OC版的Masonry

使用方法是經過snp_makeConstrainsts方法給view添加約束,分別有邊距、寬、高、坐上右下距離、基準線。同時,添加過約束後能夠有修正,修正有位移修正(inset、offset)和倍率修正(multipliedBy)html

iconView.snp_makeConstraints { (make) inless

            make.edges.equalTo(contentView)佈局

        }spa

    語法通常是:make.equalTo或make.greaterThanOrEqualTo或make.lessThanOrEqualTo+倍數和位移修正code

.equalTo:等於htm

.lessThanOrEqualTo:小於等於對象

.greaterThanOrEqualTo:大於等於blog

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

2.約束條件參數支持類型ci

(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)

三、給視圖的各類屬性設置約束

(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

相關文章
相關標籤/搜索