UINavigationController
のナビゲーションバーの背景を無地に設定する方法はありますか?NavigationBarの背景を無地に設定
私はティントの色を変えることができますが、それでもグラデーション/ガラス効果が残ります。
私はそれを取り除くことができますし、ちょうど平凡な古い単色がありますか?
UINavigationController
のナビゲーションバーの背景を無地に設定する方法はありますか?NavigationBarの背景を無地に設定
私はティントの色を変えることができますが、それでもグラデーション/ガラス効果が残ります。
私はそれを取り除くことができますし、ちょうど平凡な古い単色がありますか?
は、私はあなたがUINavigationBarをサブクラス化し、オーバーライドすることがあると思う-(void)drawRect:(CGRect)rect
:
UIColor *colorFlat = /* any UIColor*/
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [colorFlat CGColor]);
CGContextFillRect(context, rect);
のUIViewControllerを拡張し、このような何かにのviewDidLoadをオーバーライドすることCustomUIViewControllerを作成します。その後
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.view.backgroundColor = [UIColor colorWithRed: 0.0 green: 0.0 blue: 1.0 alpha: 1.0];
}
、お使いのコントローラであなたのCustomUIViewControllerを使用しています。
次のコードは、ナビゲーションバーのソリッドカラーになり:私はオーバーライドするために使用
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[UIColor redColor]];
色の濃さを設定してください。または、ナビゲーションバーのボタンは色を取得しません。[[UINavigationBar appearance] setTintColor:[UIColor redColor]]; –
これはどこですか?私はナビゲーションバーでビューコントローラのviewDidLoadでそれをやろうとしていて、それは有効に見えません。それはいつか早く完了する必要がありますか?私はそれを上書きしているようなストーリーボードを持っています。 – David
David、あなたがビューを提示する前に完了しなければなりません。 「外観」を設定しても表示されるビューは更新されません。これをグローバルに設定したい場合は、アプリケーションの中で実行するのが最適な場所です:didFinishLaunchingWithOptions :. – Lubiluk
drawRectメソッドと塗りつぶしの色。 iOS7のアップグレード後、UINavigationBarにいくつかの問題が発生します。あなた自身のdrawrectメソッドを書くと、たとえ[super drawRect]を呼び出しても、バーの寸法が変わり、高さ44ピクセルのnavigationBarで終わります。ステータスバーは空のままです。ソリッドカラーnavigationBarを取得するには
は、私は、背景画像として画像を使用し(あなたがそれを伸ばしているので、どんな小さな単色の画像が行います)とUINavigationBarサブクラスのinitWithFrameメソッドの内部で、この行を追加:
[self setBackgroundColor:[UIColor clearColor]]
[[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"bgimage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5) resizingMode:UIImageResizingModeStretch] forBarMetrics:UIBarMetricsDefault];
次のコードは私のために働いた:
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBarTintColor:[UIColor greenColor]];
self.navigationController.navigationBar.translucent = NO;
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
ありがとう。魅力のように動作します。ボタンの色を設定するには、ナビゲーションバーの色合いを変更し、色合いを取得しました。ちょうど私が期待した通り。 – MartinHN
アピアランス・プロキシ経由で可能かどうか知っていますか? '[[UINavigationBar appearance] .....];' – MartinHN
外観が利用できないときにiOS 4.2のプロジェクトでこのコードを使用します。 –