iOS edgesForExtendedLayout淺談

在iOS7以后 UIViewController 開始使用全屏布局(full-screen layout)匆笤,而且是默認(rèn)的屬性疚脐。通常涉及到布局郭计,就離不開這個(gè)屬性 edgesForExtendedLayout,它是一個(gè)類型為UIExtendedEdge的屬性,指定UIViewController上的根視圖self.view邊緣要延伸的方向迅栅。由于iOS7鼓勵(lì)全屏布局,所以它的默認(rèn)值是UIRectEdgeAll,四周邊緣均延伸慈省,就是說,如果即使視圖中上有UINavigationBar眠菇,下有UITabBar边败,那么視圖仍會(huì)延伸覆蓋到四周的區(qū)域。

edgesForExtendedLayout

通過設(shè)置此屬性捎废,你可以指定view的邊(上笑窜、左、下登疗、右)延伸到整個(gè)屏幕排截。

`typedef NS_OPTIONS(NSUInteger, UIRectEdge) {
 UIRectEdgeNone   = 0,
 UIRectEdgeTop    = 1 << 0,
 UIRectEdgeLeft   = 1 << 1,
 UIRectEdgeBottom = 1 << 2,
 UIRectEdgeRight  = 1 << 3,
 UIRectEdgeAll    = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight
} NS_ENUM_AVAILABLE_IOS(7_0);` </pre>

edgesForExtendedLayout__屬性是enum類型__UIRectEdge。默認(rèn)值是UIRectEdgeAll, 意味著view會(huì)被拓展到整個(gè)屏幕辐益。

當(dāng)在存有導(dǎo)航欄并且UIRectEdge默認(rèn)情況下断傲,添加一個(gè)高度為除去導(dǎo)航欄高度self.view.frame.size.height-64的灰色視圖,并在視圖上下邊緣各添加一個(gè)方塊,就是這個(gè)樣子智政,此時(shí)的self.view是從屏幕頂?shù)狡聊坏椎?/p>

image.png

UIRectEdgeNone

而如果我們想要讓視圖的y坐標(biāo)從導(dǎo)航欄下開始計(jì)算认罩,就需要用到

> self.edgesForExtendedLayout=UIRectEdgeNone;

而用到UIRectEdgeNone后,self.view的坐標(biāo)是從導(dǎo)航欄底部到底部分欄頂部的续捂,此時(shí)的y=0是從導(dǎo)航欄底部開始的垦垂,而如果有用xib拉底部約束是跟視圖底部邊距為0的話那會(huì)很清楚觀察到視圖底部只到tabbar頂部為止

如果push到的頁面tabbar隱藏則延伸到底部宦搬,但是會(huì)有遇到頁面存在底部按鈕但點(diǎn)擊事件會(huì)被在原tabbar位置區(qū)域被遮擋而無法響應(yīng)的情況

image.png

UIRectEdgeBottom

而若是想從導(dǎo)航欄下開始計(jì)算y,但底部延伸到底的情況 或是上面提到的遇到頁面存在底部按鈕但點(diǎn)擊事件會(huì)被在原tabbar位置區(qū)域被遮擋而無法響應(yīng)的情況下則也可以使用UIRectEdgeBottom按字面意思則是矩形邊距向下延伸

image.png

UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeRight

UIRectEdgeTop則根據(jù)以上推斷就是頁面底部到tabbar底部位置向上延伸 [圖片上傳失敗...(image-87f3de-1701601438817)]

這個(gè)很有意思:UIRectEdgeTop就是整體view向上移動(dòng)(top對齊)

分析完上面的這些劫拗,UIRectEdgeLeft/UIRectEdgeRight也不難猜測间校,就是對左右的擴(kuò)展,便不再說了页慷。


最后撇簿,關(guān)于這個(gè)屬性僅應(yīng)用于嵌入在容器(如UINavigationController)中的控制器窗口的根視圖控制器不會(huì)對該屬性作出響應(yīng)差购。該屬性的默認(rèn)值是UIRectEdgeAll四瘫。

This property is applied only to view controllers that are embedded in a container such as UINavigationController. The window’s root view controller does not react to this property. The default value of this property is UIRectEdgeAll.

作者:Singularity_Lee
鏈接:https://juejin.cn/post/6970981261816889374
來源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)欲逃,非商業(yè)轉(zhuǎn)載請注明出處找蜜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市稳析,隨后出現(xiàn)的幾起案子洗做,更是在濱河造成了極大的恐慌,老刑警劉巖彰居,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诚纸,死亡現(xiàn)場離奇詭異,居然都是意外死亡陈惰,警方通過查閱死者的電腦和手機(jī)畦徘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抬闯,“玉大人井辆,你說我怎么就攤上這事∪芪眨” “怎么了杯缺?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長睡榆。 經(jīng)常有香客問我萍肆,道長,這世上最難降的妖魔是什么胀屿? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任塘揣,我火速辦了婚禮,結(jié)果婚禮上碉纳,老公的妹妹穿的比我還像新娘勿负。我一直安慰自己,他們只是感情好劳曹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布奴愉。 她就那樣靜靜地躺著,像睡著了一般铁孵。 火紅的嫁衣襯著肌膚如雪锭硼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天蜕劝,我揣著相機(jī)與錄音檀头,去河邊找鬼。 笑死岖沛,一個(gè)胖子當(dāng)著我的面吹牛暑始,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播婴削,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼廊镜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了唉俗?” 一聲冷哼從身側(cè)響起嗤朴,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虫溜,沒想到半個(gè)月后雹姊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衡楞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年吱雏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘾境。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坎背,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寄雀,到底是詐尸還是另有隱情得滤,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布盒犹,位于F島的核電站懂更,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏急膀。R本人自食惡果不足惜沮协,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卓嫂。 院中可真熱鬧慷暂,春花似錦、人聲如沸晨雳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至血久,卻和暖如春突照,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氧吐。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工讹蘑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人筑舅。 一個(gè)月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓座慰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親翠拣。 傳聞我的和親對象是個(gè)殘疾皇子版仔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

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