Content Hugging
view.width <= optimal size,它的意思是此constraint試圖保持view的size不讓其變大:
舉個(gè)例子:
<pre><code>|-(leftCons)-(label)-(rightCons)-|
leftCons.constant = 10
rightCons.constant = 10
比如現(xiàn)在label
的真實(shí)內(nèi)容很短,也就是小于SCREENWITH-10*2,我們?yōu)榱瞬蛔屗兇蠖翁埽3忠粋€(gè)最合適的長(zhǎng)度蹂随。(<=)
這里我們可以這么修改:
rightCons.priority = 250
label.Hpriority = 251
label.Hpriority優(yōu)先級(jí)更高一些蛤奥,所以hugging起到作用<=
</code></pre>
Content Compression Resistance
view.width >= optimal size,此constraint試圖保持view的size不讓其變醒舱骸:
舉個(gè)例子:
<pre><code>|-(leftCons)-(label)-(rightCons)-|
leftCons.constant = 100
rightCons.constant = 100
比如現(xiàn)在label
的真實(shí)內(nèi)容很長(zhǎng),大于SCREENWITH-100*2,我們?yōu)榱瞬蛔屗冃?保持一個(gè)最合適的長(zhǎng)度童漩。(>=)
這里我們可以這么修改:
rightCons.priority = 749
label.Hpriority = 750
label.Hpriority優(yōu)先級(jí)更高一些苛让,所以Compression Resistance起到作用>=
</code></pre>
再來個(gè)更復(fù)雜點(diǎn)的:
<pre><code>
|-8-(label1)-8-(label2)-rightCons-|
現(xiàn)在的需求是這樣沟蔑,label1的內(nèi)容可長(zhǎng)可短湿诊,label2的內(nèi)容固定.當(dāng)label1很短的時(shí)候,label2需要緊貼著label1,當(dāng)label1很長(zhǎng)的時(shí)候瘦材,label2固定在右側(cè)8px處厅须,label1末尾打省略號(hào).
通俗一點(diǎn)就是:
|成都市武侯區(qū) 17708179999 |
|成都市武侯區(qū)成都市武侯區(qū)成都市武侯區(qū).... 17708179999|
現(xiàn)在我們可以這樣書寫:
rightCons.relation = (>=)這里肯定是>=,因?yàn)樗覀?cè)是不固定的
rightCons.priority = 751 我們的目標(biāo)是label1不能顯示完全食棕,也就是<=他自身,所以這里的等級(jí)需要比下面label的大
label2.Content Compression Resistance priority = 750
label1.Content Compression Resistance priority = 749
這里說明幾點(diǎn):
1.rightCons.relation = (>=)當(dāng)內(nèi)容很少時(shí)朗和,兩個(gè)label靠左實(shí)現(xiàn),當(dāng)內(nèi)容很長(zhǎng)時(shí)簿晓,label2居屏幕右側(cè)眶拉,label1自適應(yīng)
2.rightCons.priority最大,保證了不會(huì)因?yàn)閮蓚€(gè)label的長(zhǎng)度太長(zhǎng)而被擠出屏幕.
3.label2. priority > label1.priority ,也就是說label2的防止自己變小的能力大一些憔儿,相對(duì)來著label1就會(huì)被壓縮.
</code></pre>