iOS約束NSLayoutConstraint
NSLayoutConstraint的幾個(gè)屬性属划;
使用:
WithItem:要約束的對(duì)象
attribute:約束的類(lèi)型(約束對(duì)象的什么位置)
relatedBy:與對(duì)象的關(guān)系
toItem:參考對(duì)像
attribute:這個(gè)參數(shù)是要告訴要約束的對(duì)象把你放到參考對(duì)象的什么位置
multiplier:距離的倍數(shù)
constant:約束的距離
[NSLayoutConstraintconstraintWithItem:_myView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:10],
要實(shí)現(xiàn)自動(dòng)布局恬叹,必須把該屬性設(shè)置為no
self.translatesAutoresizingMaskIntoConstraints=NO;//
類(lèi)型不同對(duì)應(yīng)的位置數(shù)據(jù)正負(fù)不同
Top Left是正數(shù)對(duì)應(yīng)在參考對(duì)象下部和右邊也就是在里面
RightBottom是正數(shù)對(duì)應(yīng)在參考對(duì)象下部和右邊也就是外面,是負(fù)數(shù)就向反方向
[NSLayoutConstraint constraintWithItem:note
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:views
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:-10]];
介紹NSLayoutConstraint的使用
WithItem:這個(gè)一般是會(huì)填寫(xiě)被約束的對(duì)象
attribute:是規(guī)定約束對(duì)象的那個(gè)部位
relatedBy:參考者與約束對(duì)象的關(guān)系
toItem:參考者
attribute:參考對(duì)象的位置與約束對(duì)象是相同的
multiplier:計(jì)數(shù)的倍數(shù)
constant:這就是約束的計(jì)數(shù)(下面對(duì)它做一個(gè)系統(tǒng)的介紹)
剛開(kāi)始使用的時(shí)候可能不太容易上手同眯,它沒(méi)有像storyboard那樣有視圖畫(huà)看著直觀(guān)绽昼。廢話(huà)不多說(shuō)下面就來(lái)具體使用和理解
首先我要確定的是那個(gè)做約束對(duì)象的參考對(duì)象,確定好了就可以開(kāi)始做約束了
上部是代碼须蜗,下部是效果硅确。這里的黃色是一個(gè)參考對(duì)象(也是我們代碼中的views這個(gè)對(duì)象),紅色部分是一個(gè)約束對(duì)象(note這個(gè)對(duì)象)明肮。
代碼理解菱农,要約束的是note,約束的類(lèi)型是頭部柿估,設(shè)置他們是對(duì)立關(guān)系循未,約束的參考對(duì)象views,我要將約束對(duì)象的頭部約束到參考對(duì)象的那個(gè)部位秫舌,設(shè)置約束倍數(shù)的妖,設(shè)置約束的計(jì)數(shù)。
我的代碼中設(shè)置的attribute:這個(gè)參數(shù)是相同可能對(duì)理解不是太大舅巷,那我下面改動(dòng)一下做一個(gè)詳解羔味。通過(guò)對(duì)上面代碼理解那么我要將note約束到views的下部是不是就改動(dòng)《約束對(duì)象的頭部約束到參考對(duì)象什么部位河咽,也就是第二個(gè)attribute:》那就改動(dòng)一下
結(jié)果是對(duì)的钠右,說(shuō)明理解是沒(méi)有問(wèn)題
觀(guān)察細(xì)致的人可能會(huì)疑惑為什么下面為什么會(huì)出現(xiàn)一個(gè)-10計(jì)數(shù)?那我就把-10該為10會(huì)出現(xiàn)什么效果了
Top Left是正數(shù)對(duì)應(yīng)在參考對(duì)象下部和右邊也就是在里面
ightBottom是正數(shù)對(duì)應(yīng)在參考對(duì)象下部和右邊也就是外面忘蟹,是負(fù)數(shù)就向反方向