在IOS7以后 ViewController 開(kāi)始使用全屏布局的,而且是默認(rèn)的行為通常涉及到布局
就離不開(kāi)這個(gè)屬性 edgesForExtendedLayout憔晒,它是一個(gè)類(lèi)型為UIExtendedEdge的屬性,
指定邊緣要延伸的方向拒担,它的默認(rèn)值很自然地是UIRectEdgeAll,四周邊緣均延伸抚垄,就是說(shuō)谋逻,
如果即使視圖中上有navigationBar,下有tabBar浙滤,那么視圖仍會(huì)延伸覆蓋到四周的區(qū)域纺腊。
因?yàn)橐话銥榱瞬蛔宼ableView 不延伸到 navigationBar 下面茎芭, 屬性設(shè)置為 UIRectEdgeNone
UIRectEdgeAll -- default
UIRectEdgeNone
這時(shí)會(huì)發(fā)現(xiàn)導(dǎo)航欄變灰了,處理如下就OK了
self.navigationController.navigationBar.translucent = NO;
那 automaticallyAdjustsScrollViewInsets
呢壹粟?
當(dāng) automaticallyAdjustsScrollViewInsets
為 NO 時(shí)宿百,tableview 是從屏幕的最上邊開(kāi)始垦页,也就是被
導(dǎo)航欄 & 狀態(tài)欄覆蓋
當(dāng) automaticallyAdjustsScrollViewInsets
為 YES 時(shí),也是默認(rèn)行為盏袄,表現(xiàn)就比較正常了薄啥,和
edgesForExtendedLayout = UIRectEdgeNone
有啥區(qū)別? 不注意可能很難覺(jué)察
設(shè)計(jì)師可能一眼就看穿。黑低。酌毡。 automaticallyAdjustsScrollViewInsets 為YES 時(shí)枷踏,
tableView 上下滑動(dòng)時(shí)旭蠕,是可以穿過(guò)導(dǎo)航欄&狀態(tài)欄的旷坦,在他們下面有淡淡的淺淺紅色
extendedLayoutIncludesOpaqueBars
首先看下官方解釋?zhuān)J(rèn) NO, 但是Bar 的默認(rèn)屬性是 透明的旗芬。捆蜀。。也就是說(shuō)只有在不透明下才有用
但是誊薄,測(cè)試結(jié)果很軟肋锰茉,基本區(qū)別不大。咐刨。扬霜。但是對(duì)于解決一些Bug 是還是起作用的著瓶,比如說(shuō)SearchBar的
跳動(dòng)問(wèn)題,詳情見(jiàn):http://www.cnblogs.com/skyming/p/4059128.html沸久, 其他UITableView,UIScrollView 位置的
問(wèn)題多數(shù)和這3屬性相關(guān)余蟹。。