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í),scrollview
的ContentInset.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下面 |