設(shè)定Constraint的時(shí)候丑蛤,可能會(huì)發(fā)現(xiàn)有一欄叫做Priority盆偿,可是似乎都沒有用到。
某些狀況下你會(huì)需要它的热押,舉例來說西傀。
我現(xiàn)在有一個(gè)View斤寇,他的高度希望是由螢?zāi)唤馕龆葋頉Q定,但是又希望有上下限拥褂。
像是娘锁,View的高為螢?zāi)桓叩?/6,可是最大不能超過100饺鹃。
這算是比較特別的例子莫秆,他會(huì)隨著螢?zāi)唤馕龆鹊牟煌淖儯畲蟛粫?huì)超過100
如果有這類的需求悔详,就可以使用Priority來達(dá)成镊屎。
像是在4s的時(shí)候,1/6的大小應(yīng)該不會(huì)超過100茄螃,
而6s+的時(shí)候杯道,1/6的大小會(huì)超過100,而你希望他不要超過责蝠。
首先先做簡(jiǎn)單的設(shè)定党巾,左上右均為0 ,高為100霜医。
接著在設(shè)定此View高為螢?zāi)坏?/6齿拂,並將Priority設(shè)為750。
最後將高為100的Relation 改為 Less Than or Equal
此時(shí)你執(zhí)行此APP肴敛,在最小的4s手機(jī)下署海,這個(gè)View的高是160(2x),也就是4s高的1/6医男,
在6s+執(zhí)行時(shí)砸狞,原本1/6應(yīng)該是320(3x),但是我們規(guī)定他最高不能超過100镀梭,在3x的時(shí)候就是不能超過300刀森,因此這個(gè)View的高度會(huì)是300
Priority他的值越高越不會(huì)被改動(dòng),設(shè)為1000就是最高選項(xiàng)报账,任何人都得聽它的話研底,值越小的Constraint要聽值越高的。
以這個(gè)例子來說
螢?zāi)桓?/6 ? ? ?Priority 750
高度小於100 ?Priority 1000
在4s的狀況下 第一條得到的結(jié)果是160(2x)透罢,而第二條也是符合的榜晦,小於等於200(2x)
在6s+的狀況下 第一條得到的結(jié)果是320(3x),可是第二條的Priority高於第一條羽圃,
第一條說我想要這個(gè)View是320乾胶,可是他Priority輸給高度小於300(3x)
因此只好聽老大的話,乖乖的小於等於300(3x)。
你可以設(shè)定多個(gè)優(yōu)先順序识窿,來達(dá)到你想要的效果斩郎。
備註:
這邊的值都是依照該裝置的2x 3x來說明的,
簡(jiǎn)單的說我輸入100腕扶,在2x的裝置下就是100x2 = 200
3x則是300孽拷。