34

私はこれに何度も遭遇しましたが、解決策は見つかりませんでした。UINavigationControllerのnavigationBarは、次のように黒の半透明に設定できます。

self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;

また、UINavigationBarには半透明のプロパティがあり、ドキュメントには次のように書かれています。

YESの場合、ナビゲーションバーは、バーのスタイルに関係なく、部分的に不透明に描画されます。不透明度は固定されており、変更できません。ナビゲーションバーがナビゲーションコントローラオブジェクトによって管理されている場合は、このプロパティの値を設定できます。

私は試した

self.navigationcontroller.navigationBar.tintColor=[UIColor blueColor];
self.navigationcontroller.navigationBar.translucent=YES;

そして千のバリエーション:最初に半透明のプロパティを設定し、AppDelegateとViewControllerで設定し、最初にバースタイルを設定します。結果は常に同じです。透明性はありません。したがって、私の質問:

半透明のUINavigationBarの色を黒とは異なる色(できればUINavigationController内)に変更することは本当に可能ですか?

レビューに安全な解決策があることを願っています。

ありがとう、m

4

4 に答える 4

50

あなたがそれを知ったら、それはかなり簡単です:

self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.alpha = 0.7f;
self.navigationController.navigationBar.translucent = YES;

translucentプロパティは、メインビューがナビゲーションバーの下に表示されるかどうかを決定するだけのようであり、ビューのサイズを適切に変更します。

于 2011-08-05T16:28:18.657 に答える
17

半透明の効果をより正確に模倣するには、つまり、ナビゲーションバーの背景のみが半透明で、ボタン、タイトル、その他すべてが不透明になるようにするには、次のようにします。

self.navigationController.navigationBar.translucent = YES;
[(UIView*)[self.navigationController.navigationBar.subviews objectAtIndex:0] setAlpha:0.7f];
于 2012-09-12T13:42:13.417 に答える
4

少なくともiPhone4SのiOS6では、次のような色付きの半透明のナビゲーションバーを作成できます。

self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.translucent = YES;

アルファ設定はもう必要ないようです。これにより、タイトルが明るい白になり、ボタンが不透明になります。

于 2013-02-25T21:34:54.000 に答える
0

解決策は次のとおりです。

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:3.f/255.f green:8.f/255.f blue:61.f/255.f alpha:1]];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barTintColor = [UINavigationBar appearance].barTintColor;
于 2015-03-09T09:02:21.333 に答える