web-dev-qa-db-ja.com

iOS 7でナビゲーションバーを透明にする方法は?

Navigation Controllerのバーを完全に透明にする方法はありますか?

私が試したこと:

[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar setBarTintColor:[UIColor clearColor]];
[self.navigationController.navigationBar setAlpha:0.0];

しかし、バーの外観は変わらず、白い半透明のままです。私はバー項目を表示しようとしていますが、バー自体は表示しようとはしていません。誰かが私を正しい方向に向けることができますか?ありがとう

18
user1244109

誰かがiOS 7でこれを達成する方法を疑問に思っているなら、ここに解決策があります(iOS 6にも互換性があります)

[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;

UINavigationBarのドキュメントで説明されている動作のため、ナビゲーションバーで半透明をYESに設定するとうまくいきます。関連するフラグメントをここで報告します。

不透明なカスタム背景画像があるナビゲーションバーでこのプロパティをYESに設定すると、ナビゲーションバーは画像に1.0未満のシステム不透明度を適用します。

参照: INavigationBarを透明にする

65
Pradhyuman sinh

次のコードでナビゲーションバーを透明にすることができます


[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[UIImage new]];
[self.navigationBar setTranslucent:YES];
22
Haresh Ghatala