Auto Layout

來看看Auto Layout。

我們都知道的,Auto Layout可以描述視圖與其內(nèi)容相互之間的關(guān)系绒尊,也可以描述視圖視圖及其內(nèi)容與父視圖之間的關(guān)系。
那仔粥,Auto Layout 的工作原理是通過創(chuàng)建屏幕上的對(duì)象之間的關(guān)系來實(shí)現(xiàn)布局婴谱。
使用Auto Layout ,可以描述一些約束,用來指定視圖之間的關(guān)系躯泰;也可以設(shè)置一些視圖屬性谭羔,用來描述視圖與其內(nèi)容之間的關(guān)系。
1>內(nèi)容驅(qū)動(dòng)的布局
Auto Layout是內(nèi)容驅(qū)動(dòng)的斟冕。它在布局時(shí)會(huì)考慮視圖的內(nèi)容
2>優(yōu)先級(jí)規(guī)則
Auto Layout 通過優(yōu)先級(jí)規(guī)則權(quán)衡各布局選項(xiàng)的重要性口糕,并對(duì)優(yōu)先級(jí)作適當(dāng)調(diào)整,使之適合有挑戰(zhàn)性的邊界條件和特殊情況磕蛇。當(dāng)規(guī)則發(fā)生沖突時(shí)景描,系統(tǒng)根據(jù)優(yōu)先級(jí)排序選擇最重要的布局質(zhì)量來保護(hù)。
3>檢查和模塊化
Auto Layout可以有效地進(jìn)行集中處理和檢查秀撇。只有當(dāng)使用代碼創(chuàng)建布局時(shí)才能利用這一優(yōu)勢(shì)超棺。
使用代碼創(chuàng)建布局,可以將規(guī)則劃分為一些通用方法(如loadView和updateViewConstraints)并自由地對(duì)這些方法進(jìn)行注釋呵燕。
將約束進(jìn)行模塊化是一件很簡(jiǎn)單的事棠绘,當(dāng)創(chuàng)建了將一個(gè)視圖相對(duì)于其父視圖居中的例程后,就可以無限地重用該例程再扭。

視圖丟失氧苍?
1、欠約束導(dǎo)致丟失視圖
欠約束的視圖沒有為Auto Layout提供構(gòu)建視圖所需的足夠信息泛范,因此它通常默認(rèn)大小為0.
2让虐、規(guī)則不一致導(dǎo)致丟失視圖
兩個(gè)視圖相互之間的約束規(guī)則不一致時(shí),這種規(guī)則既可以實(shí)現(xiàn)罢荡,也無歧義赡突,這是因?yàn)橐晥D的寬度為0時(shí),可滿足区赵。所以丟失惭缰。

追蹤丟失的視圖:
在預(yù)期他們出現(xiàn)之后檢查他們的幾何形狀(例如使用viewDidAppear:和awakeFromNib),可以添加NSAssert語句來描述他們的預(yù)期大小和位置。

有歧義的布局
在開發(fā)過程中笼才,可以調(diào)用hasAmbiguousLayout來測(cè)試視圖的約束是否充分漱受。如果某個(gè)視圖可能顯示另一種不同的框架,則返回YES骡送;如果某個(gè)視圖的約束已充分指定拜效,則返回NO.這些結(jié)果是每個(gè)視圖所特有的。應(yīng)該為你的視圖層次結(jié)構(gòu)中的每個(gè)視圖單獨(dú)地測(cè)試布局各谚。

內(nèi)在內(nèi)容大小
使用Auto Layout時(shí)紧憾,視圖的內(nèi)容在其布局中的重要性與約束不相上下。視圖內(nèi)容的大小通過每個(gè)視圖的intrinsicContentSize屬性表達(dá)昌渤,它描述了在數(shù)據(jù)未經(jīng)壓縮或裁剪的情況下表達(dá)視圖全部?jī)?nèi)容所需的最小空間赴穗。該屬性源于每個(gè)視圖所呈現(xiàn)內(nèi)容的自然屬性。
通過視圖的內(nèi)在內(nèi)容大小膀息,Auto Layout將視圖的框架盡可能地與其自然內(nèi)容相匹配般眉。

壓縮阻力
壓縮阻力是指視圖保護(hù)其內(nèi)容的方式,壓縮阻力高的視圖能夠抵抗收縮潜支,不允許內(nèi)容被剪切甸赃。setContentCompressionResistancePriority

內(nèi)容吸附
內(nèi)容吸附優(yōu)先級(jí)是防止在視圖與其核心內(nèi)容間作填充或直接伸展其核心內(nèi)容.
setContentHuggingPriority

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市冗酿,隨后出現(xiàn)的幾起案子埠对,更是在濱河造成了極大的恐慌络断,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件项玛,死亡現(xiàn)場(chǎng)離奇詭異貌笨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)襟沮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門锥惋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人开伏,你說我怎么就攤上這事膀跌。” “怎么了固灵?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵捅伤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我怎虫,道長(zhǎng)暑认,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任大审,我火速辦了婚禮蘸际,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徒扶。我一直安慰自己粮彤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布姜骡。 她就那樣靜靜地躺著导坟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪圈澈。 梳的紋絲不亂的頭發(fā)上惫周,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音康栈,去河邊找鬼递递。 笑死,一個(gè)胖子當(dāng)著我的面吹牛啥么,可吹牛的內(nèi)容都是我干的登舞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼悬荣,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼菠秒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起氯迂,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤践叠,失蹤者是張志新(化名)和其女友劉穎言缤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酵熙,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轧简,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年驰坊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匾二。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拳芙,死狀恐怖察藐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舟扎,我是刑警寧澤分飞,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站睹限,受9級(jí)特大地震影響譬猫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羡疗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一染服、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叨恨,春花似錦柳刮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至送矩,卻和暖如春蚕甥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背栋荸。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工菇怀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒸其。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓敏释,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親摸袁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钥顽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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