首先, 我已經看到所有的答案在How to make UINavigationBar Transparent in IOS 8?Transparent UINavigationBar和Make UINavigationBar transparent。如何使UINavigationBar背景透明?
他們似乎並不適合我。
我經常視圖控制器沒有任何問題(試圖使導航欄透明前):
我使用(嘗試都在viewDidLoad
和viewWillAppear:
):
[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.view.backgroundColor = [UIColor clearColor];
我得到這個:
灰色狀態欄背景,完全白色的導航欄不與狀態欄混合,然後視圖開始。對於其他問題'答案'的所有'解決方案'對我來說都會產生同樣的結果。
我也試過設置self.edgesForExtendedLayout = UIRectEdgeNone;
或self.edgesForExtendedLayout = UIRectEdgeAll;
,但這也沒有任何影響。
如何讓我的導航欄透明而不會搞亂一切?
UPDATE:繼Warif Akhand仙人的回答,我已經改變了self.navigationController.view.backgroundColor = [UIColor clearColor];
到self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];
,現在我就在一個灰色的,統一的狀態/導航欄,但仍不透明:
更新2:我連接了視圖調試器,並且灰色背景似乎來自視圖層次結構的深層內容,並且我的視圖內容沒有擴展。我試圖再次self.edgesForExtendedLayout = UIRectEdgeAll;
了最新的代碼,但仍無濟於事:
隱藏狀態欄怎麼樣? –
在你的視圖控制器中,你是在頂杆下方延伸邊緣嗎? – beyowulf
@SamB我不想隱藏狀態欄。 –