edgesForExtendedLayout:在IOS7以後 ViewController 開始使用全屏佈局的,而且是預設的行為通常涉及到佈局,就離不開這個屬性edgesForExtendedLayout,它是一個類型為UIExtendedEdge的屬性,指定邊緣要延伸的方向,它的預設值很自然地是U...
edgesForExtendedLayout:
在IOS7以後 ViewController 開始使用全屏佈局的,而且是預設的行為通常涉及到佈局,就離不開這個屬性 edgesForExtendedLayout,它是一個類型為UIExtendedEdge的屬性,指定邊緣要延伸的方向,它的預設值很自然地是UIRectEdgeAll,四周邊緣均延伸,就是說,如果即使視圖中上有navigationBar,下有tabBar,那麼視圖仍會延伸覆蓋到四周的區域。因為一般為了不讓tableView 不延伸到 navigationBar 下麵, 屬性設置為 UIRectEdgeNone
UIRectEdgeAll -- default
UIRectEdgeNone
這時會發現導航欄變灰了,處理如下就OK了,self.navigationController.navigationBar.translucent = NO;
automaticallyAdjustsScrollViewInsets :
當 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屬性相關。。