NavigationBar的隱藏與顯示

最近在使用UINavigationView時,rootViewController設(shè)置多個子UIView進(jìn)行切換,發(fā)現(xiàn)只有最先顯示的UIView能正常顯示,通過切換顯示的UIView的布局向上偏移了64px,導(dǎo)致部分內(nèi)容被NavigationBar給遮擋了。

通過查詢相關(guān)資料才發(fā)現(xiàn)iOS6中默認(rèn)的布局將從navigation bar的底部開始,但到了iOS7中默認(rèn)布局從navigation bar的頂部開始,這就是為什么所有的UI元素都往上漂移了。

通常有兩種解決方案:
1.設(shè)置NavigationBar的透明度為NO.

navigationBarApperance.translucent=NO;

2.設(shè)置NavigationBar的backgroundImage.

[navigationBarApperance setBackgroundImage:[UIImage imageWithColor:kColorNavBG] forBarMetrics:UIBarMetricsDefault];

還有一種方案是在rootViewController的ViewDidLoad方法中設(shè)置:

self.edgesForExtendedLayout=UIRectEdgeNone;

edgesForExtendedLayout是一個類型為UIExtendedEdge的屬性,指定邊緣要延伸的方向,它的默認(rèn)值是UIRectEdgeAll,即視圖向容器四周延伸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容