edgesForExtendedLayout、automaticallyAdjustsScrollV

在IOS7之後 ViewController 開始使用全屏佈局的,並且是默認的行爲一般涉及到佈局html

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

指定邊緣要延伸的方向,它的默認值很天然地是UIRectEdgeAll,四周邊緣均延伸,就是說,測試

若是即便視圖中上有navigationBar,下有tabBar,那麼視圖仍會延伸覆蓋到四周的區域。spa

由於通常爲了避免讓tableView 不延伸到 navigationBar 下面, 屬性設置爲 UIRectEdgeNone設計

UIRectEdgeAll -- default
orm

\

UIRectEdgeNone 
htm

\

這時會發現導航欄變灰了,處理以下就OK了blog

 self.navigationController.navigationBar.translucent = NO;ci


那 automaticallyAdjustsScrollViewInsets 呢?get

當 automaticallyAdjustsScrollViewInsets 爲 NO 時,tableview 是從屏幕的最上邊開始,也就是被

導航欄 & 狀態欄覆蓋

\


當 automaticallyAdjustsScrollViewInsets 爲 YES 時,也是默認行爲,表現就比較正常了,和

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

設計師可能一眼就看穿。。。 automaticallyAdjustsScrollViewInsets 爲YES 時,

tableView 上下滑動時,是能夠穿過導航欄&狀態欄的,在他們下面有淡淡的淺淺紅色

\

extendedLayoutIncludesOpaqueBars 

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

可是,測試結果很軟肋,基本區別不大。。。可是對於解決一些Bug 是仍是起做用的,好比說SearchBar的

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

問題多數和這3屬性相關。。

\

相關文章
相關標籤/搜索