iOS 7 でナビゲーション バーの色を変更するにはどうすればよいですか?
基本的には、Twitter Nav Bar のようなものを実現したいと考えています (そのために Twitter を更新しましたiOS7
)。の上にナビゲーションバーを埋め込みましたview controller
。私が望むのは、ナビゲーションバーの色を上部のユーティリティバーとともに水色に変更することだけです. にオプションが見つからないようですstoryboard
。
iOS 7 でナビゲーション バーの色を変更するにはどうすればよいですか?
基本的には、Twitter Nav Bar のようなものを実現したいと考えています (そのために Twitter を更新しましたiOS7
)。の上にナビゲーションバーを埋め込みましたview controller
。私が望むのは、ナビゲーションバーの色を上部のユーティリティバーとともに水色に変更することだけです. にオプションが見つからないようですstoryboard
。
self.navigationBar.barTintColor = [UIColor blueColor];
self.navigationBar.tintColor = [UIColor whiteColor];
self.navigationBar.translucent = NO;
// *barTintColor* sets the background color
// *tintColor* sets the button's color
ナビゲーション ベースのアプリでは、コードを AppDelegate に配置できます。より詳細なコードは次のようになります。
// Navigation bar appearance (background and title)
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor titleColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"FontNAme" size:titleSize], NSFontAttributeName, nil]];
[[UINavigationBar appearance] setTintColor:[UIColor barColor]];
// Navigation bar buttons appearance
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor textBarColor], NSForegroundColorAttributeName, shadowColor, NSShadowAttributeName, [UIFont fontWithName:@"FontName" size:titleSize], NSFontAttributeName, nil];
ナビゲーションバーの色をすばやく変更するには:
self.navigationController?.navigationBar.barTintColor = UIColor.red
タイトルのフォント、サイズ、色を変更:
self.title = "title"
self.navigationController?.navigationBar.titleTextAttributes = [
NSAttributedString.Key.foregroundColor : UIColor.white,
NSAttributedString.Key.font : UIFont(name: "Futura", size: 30)!
]
iOS 7 では、-barTintColor プロパティを使用する必要があります。
navController.navigationBar.barTintColor = [UIColor barColor];
ios6 と ios7 をサポートする必要がある場合は、 UIViewControllerでこれを使用して特定の水色を取得します。
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:89/255.0f green:174/255.0f blue:235/255.0f alpha:1.0f];
self.navigationController.navigationBar.translucent = NO;
}else{
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:89/255.0f green:174/255.0f blue:235/255.0f alpha:1.0f];
}
}
ここで見た答えよりも実際には簡単です。
1) Just make sure you select the navigation bar on the Navigation control.
2) Select the color you want in the bar tint.
3) You have other options too, and/or individually on each view (just play with it).
これが誰かに役立つことを願っています。私が見た答えが気に入らなかった。コードをできるだけきれいに保つのが好きです。プログラムでそれを行うのが間違っていると言っているわけではありませんが、私のような人がいます....これは皆さんのためです.
//You could place this code into viewDidLoad
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.tintColor = [UIColor redColor];
//change the nav bar colour
self.navigationController.view.backgroundColor = [UIColor redColor];
//change the background colour
self.navigationController.navigationBar.translucent = NO;
}
//Or you can place it into viewDidAppear
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:(BOOL)animated];
self.navigationController.navigationBar.tintColor = [UIColor redColor];
//change the nav bar colour
self.navigationController.view.backgroundColor = [UIColor redColor];
//change the background colour
self.navigationController.navigationBar.translucent = NO;
}
#define _kisiOS7 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
if (_kisiOS7)
{
[[UINavigationBar appearance] setBarTintColor:[UIcolor redcolor]];
}
else
{
[[UINavigationBar appearance] setBackgroundColor:[UIcolor blackcolor]];
[[UINavigationBar appearance] setTintColor:[UIcolor graycolor]];
}
ナビゲーションベースのアプリケーションでは、色を変更できます
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:19.0/255.0 green:86.0/255.0 blue:138.0/255.0 alpha:1];
self.navigationController.navigationBar.translucent = NO;
} else {
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:19.0/255.0 green:86.0/255.0 blue:138.0/255.0 alpha:1];
}