iOS edgesForExtendedLayouts用到的適配

iOS7以后,VC默認(rèn)使用全屏布局,即view的origin.x是從屏幕的左上角開(kāi)始計(jì)算的。在有navigationcontroller合uitabbarcontroller時(shí),view也是默認(rèn)占滿整個(gè)屏幕的。

edgesForExtendedLayout

edgesForExtendedLayout的作用是,告知view是在整個(gè)屏幕哪個(gè)方向延展。默認(rèn)值是:UIRectEdgeAll,向上下左右四個(gè)方向延展,也就是我們看到的效果。view占滿這個(gè)屏幕。

當(dāng)我們把edgesForExtendedLayouts設(shè)置為UIRectEdgeNone時(shí),view的布局就是從navigationbar下面開(kāi)始布局,并且底部不會(huì)延展到UITabbar下面。

automaticallyAdjustsScrollViewInsets

在解釋edgesForExtendedLayout屬性時(shí)也需要解釋下automaticallyAdjustsScrollViewInsets屬性,默認(rèn)為YES,該值表示是否自動(dòng)調(diào)整滾動(dòng)時(shí)圖的contentInset屬性,以適應(yīng)狀態(tài)欄,搜索欄,導(dǎo)航欄工具欄或者選項(xiàng)卡欄占居的屏幕區(qū)域。automaticallyAdjustsScrollViewInsets為yes時(shí),scrollviewContentInset.top值會(huì)自動(dòng)調(diào)整為64,這樣scrollview里的內(nèi)容就是在navigationbar下面布局了。

translucent

再解釋個(gè)屬性:translucent 導(dǎo)航欄是否為半透明的。默認(rèn)是yes.
當(dāng)設(shè)置navitaioncontoller.navigationbar.translucent = NO 時(shí),需要處理 extenedLayoutIncludesOpaquesBars屬性。默認(rèn)值是NO,
self.view的布局是否包含設(shè)置為不透明之后的導(dǎo)航欄,以及tabBar,這是為yes時(shí),依然會(huì)延伸到這些bar下面,占滿整個(gè)屏幕,設(shè)置為NO時(shí)就會(huì)避免這些bar,不再延伸到它們下面。

結(jié)構(gòu) edgesForExtendedLayout
UIRectEdgeAll. 延展
UIRectEdgeNone 不延展
表格 automaticallyAdjustsScrollviewInsets navigationBar.translucent
UIRectEdgeAll 默認(rèn)yes,contentInset自適應(yīng)bar內(nèi)容。 no表示不自適應(yīng),就需要自己調(diào)整了 默認(rèn)yes,表示半透明。會(huì)各種延展。為NO時(shí),需要考慮extendedLayoutIncludesOpaquesBars,默認(rèn)NO ,屬性表示是否包含不透明的bar,NO 表示不包含,就不延展,yes表示包含,即時(shí)不透明也會(huì)延展到這些bar下面
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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