edgesForExtendedLayout

在IOS7以后 ViewController 開始使用全屏布局的,而且是默認(rèn)的行為通常涉及到布局

就離不開這個屬性 edgesForExtendedLayout,它是一個類型為UIExtendedEdge的屬性,

指定邊緣要延伸的方向,它的默認(rèn)值很自然地是UIRectEdgeAll,四周邊緣均延伸,就是說,

如果即使視圖中上有navigationBar,下有tabBar,那么視圖仍會延伸覆蓋到四周的區(qū)域。

因為一般為了不讓tableView 不延伸到 navigationBar 下面, 屬性設(shè)置為 UIRectEdgeNone

UIRectEdgeAll -- default

UIRectEdgeNone

這時會發(fā)現(xiàn)導(dǎo)航欄變灰了,處理如下就OK了

self.navigationController.navigationBar.translucent = NO;

那 automaticallyAdjustsScrollViewInsets 呢?

當(dāng) automaticallyAdjustsScrollViewInsets 為 NO 時,tableview 是從屏幕的最上邊開始,也就是被

導(dǎo)航欄 & 狀態(tài)欄覆蓋

當(dāng) automaticallyAdjustsScrollViewInsets 為 YES 時,也是默認(rèn)行為,表現(xiàn)就比較正常了,和

edgesForExtendedLayout = UIRectEdgeNone 有啥區(qū)別? 不注意可能很難覺察

設(shè)計師可能一眼就看穿。。。 automaticallyAdjustsScrollViewInsets 為YES 時,

tableView 上下滑動時,是可以穿過導(dǎo)航欄&狀態(tài)欄的,在他們下面有淡淡的淺淺紅色

extendedLayoutIncludesOpaqueBars

首先看下官方解釋,默認(rèn) NO, 但是Bar 的默認(rèn)屬性是 透明的。。。也就是說只有在不透明下才有用

但是,測試結(jié)果很軟肋,基本區(qū)別不大。。。但是對于解決一些Bug 是還是起作用的,比如說SearchBar的

跳動問題,詳情見:http://www.cnblogs.com/skyming/p/4059128.html,其他UITableView,UIScrollView 位置的

問題多數(shù)和這3屬性相關(guān)。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容