AutoLayout中的Content Hugging 和 Content Compression Resistance

轉(zhuǎn)自:http://blog.csdn.net/yaozhuoyu/article/details/9798213
如果你看本文章,你可以直接閱讀原文羡儿,謝謝。
本人使用Masonry布局實(shí)現(xiàn)了一下作者的Demo是钥,學(xué)習(xí)一下掠归。

iOS6中引入了AutoLayout,極大的方便了UI元素的布局悄泥,現(xiàn)在已經(jīng)過去一年了虏冻,并且大部分設(shè)備的系統(tǒng)也已經(jīng)升級(jí)到了iOS6,是時(shí)候要使用此項(xiàng)技術(shù)了弹囚。

在AutoLayout的學(xué)習(xí)中有兩個(gè)概念官方文檔講述的不是很清楚厨相,今天花費(fèi)了2個(gè)小時(shí)的時(shí)間研究了一下,在此總結(jié)一下鸥鹉。
Content Hugging 和 Content Compression Resistance

這兩個(gè)屬性對(duì)有intrinsic content size的控件(例如button蛮穿,label)非常重要。通俗的講毁渗,具有intrinsic content size的控件自己知道(可以計(jì)算)自己的大小践磅,例如一個(gè)label,當(dāng)你設(shè)置text灸异,font之后府适,其大小是可以計(jì)算到的。關(guān)于intrinsic content size官方的解釋:
Custom views typically have content that they display of which the layout system is unaware. Overriding this method allows a custom view to communicate to the layout system what size it would like to be based on its content. This intrinsic size must be independent of the content frame, because there’s no way to dynamically communicate a changed width to the layout system based on a changed height, for example.
好了肺樟,了解了intrinsic content size的概念之后檐春,下面就重點(diǎn)討論Content Hugging 和 Content Compression Resistance了。

UIView中關(guān)于Content Hugging 和 Content Compression Resistance的方法有:

  • (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis
  • (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis
  • (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis
  • (void)setContentHuggingPriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis
    大概的意思就是設(shè)置優(yōu)先級(jí)的儡嘶。

Hugging priority 確定view有多大的優(yōu)先級(jí)阻止自己變大喇聊。

Compression Resistance priority確定有多大的優(yōu)先級(jí)阻止自己變小。

很抽象蹦狂,其實(shí)content Hugging就是要維持當(dāng)前view在它的optimal size(intrinsic content size)誓篱,可以想象成給view添加了一個(gè)額外的width constraint朋贬,此constraint試圖保持view的size不讓其變大:

view.width <= optimal size

此constraint的優(yōu)先級(jí)就是通過上面的方法得到和設(shè)置的,content Hugging默認(rèn)為250.

Content Compression Resistance就是要維持當(dāng)前view在他的optimal size(intrinsic content size)窜骄,可以想象成給view添加了一個(gè)額外的width constraint锦募,此constraint試圖保持view的size不讓其變小:
view.width >= optimal size
此默認(rèn)優(yōu)先級(jí)為750.

Masonry實(shí)現(xiàn)的Demo演示
Demo地址:https://github.com/JnLuffy/HuggingAndCompressionResitanceDemo1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末邻遏,一起剝皮案震驚了整個(gè)濱河市糠亩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌准验,老刑警劉巖赎线,帶你破解...
    沈念sama閱讀 212,222評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異糊饱,居然都是意外死亡垂寥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門另锋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滞项,“玉大人,你說我怎么就攤上這事夭坪∥呐校” “怎么了?”我有些...
    開封第一講書人閱讀 157,720評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵室梅,是天一觀的道長(zhǎng)戏仓。 經(jīng)常有香客問我,道長(zhǎng)亡鼠,這世上最難降的妖魔是什么柜去? 我笑而不...
    開封第一講書人閱讀 56,568評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮拆宛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讼撒。我一直安慰自己浑厚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,696評(píng)論 6 386
  • 文/花漫 我一把揭開白布根盒。 她就那樣靜靜地躺著钳幅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炎滞。 梳的紋絲不亂的頭發(fā)上敢艰,一...
    開封第一講書人閱讀 49,879評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音册赛,去河邊找鬼钠导。 笑死震嫉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牡属。 我是一名探鬼主播票堵,決...
    沈念sama閱讀 39,028評(píng)論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逮栅!你這毒婦竟也來了悴势?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,773評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤措伐,失蹤者是張志新(化名)和其女友劉穎特纤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侥加,經(jīng)...
    沈念sama閱讀 44,220評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捧存,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,550評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了官硝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矗蕊。...
    茶點(diǎn)故事閱讀 38,697評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖氢架,靈堂內(nèi)的尸體忽然破棺而出傻咖,到底是詐尸還是另有隱情,我是刑警寧澤岖研,帶...
    沈念sama閱讀 34,360評(píng)論 4 332
  • 正文 年R本政府宣布卿操,位于F島的核電站,受9級(jí)特大地震影響孙援,放射性物質(zhì)發(fā)生泄漏害淤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,002評(píng)論 3 315
  • 文/蒙蒙 一拓售、第九天 我趴在偏房一處隱蔽的房頂上張望窥摄。 院中可真熱鬧,春花似錦础淤、人聲如沸崭放。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽币砂。三九已至,卻和暖如春玻侥,著一層夾襖步出監(jiān)牢的瞬間决摧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掌桩,地道東北人边锁。 一個(gè)月前我還...
    沈念sama閱讀 46,433評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拘鞋,于是被迫代替她去往敵國(guó)和親砚蓬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,587評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容