導航欄使用不透明的圖片時,控制器view的y值

ios7之前的版本中UIViewController中的view在顯示後會自動調整爲去掉導航欄的高度的,控件會自動在導航欄以下襬放。

在iOS7中UIViewController的wantsFullScreenLayout屬性被捨棄了,所有的UIViewController創建後默認就是full Screen的,因此如果帶導航欄的應用界面中的部分控件會被導航欄覆蓋掉。

解決方案:可以使用ios7種UIViewController新增的屬性extendLayoutIncludesOpaqueBars和edgesForExtendedLayout來解決。

其中這個屬性指定了當bar使用不透明圖片時,試圖是否延伸至bar所在區域,默認值爲NO。而edgesForExtendedLayout

其中這個屬性指定了當Bar使用了不透明圖片時,視圖是否延伸至Bar所在區域,默認值時NO。而edgesForExtendedLayout則是表示視圖是否覆蓋到四周的區域,默認是UIRectEdgeAll,即上下左右四個方向都會覆蓋,那麼爲讓頂部不進行延伸到導航欄覆蓋的區域,我們可以把頂部區域延伸去掉。


實現代碼如下:

self.extendedLayoutIncludesOpaqueBars = NO;
self.edgesForExtendedLayout = UIRectEdgeBottom | UIRectEdgeLeft | UIRectEdgeRight;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章