在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的