iOS 7에서 내비게이션 바 색상을 어떻게 변경합니까?
기본적으로 Twitter Nav Bar와 같은 것을 달성하고 싶습니다 (Twitter가 업데이트되었습니다 iOS7
). 탐색 모음을 a 상단에 내장했습니다 view controller
. 원하는 것은 상단의 유틸리티 표시 줄과 함께 탐색 표시 줄 색상을 연한 파란색으로 변경하는 것입니다. 내에서 옵션을 찾지 못하는 것 같습니다 storyboard
.
iOS 7에서 내비게이션 바 색상을 어떻게 변경합니까?
기본적으로 Twitter Nav Bar와 같은 것을 달성하고 싶습니다 (Twitter가 업데이트되었습니다 iOS7
). 탐색 모음을 a 상단에 내장했습니다 view controller
. 원하는 것은 상단의 유틸리티 표시 줄과 함께 탐색 표시 줄 색상을 연한 파란색으로 변경하는 것입니다. 내에서 옵션을 찾지 못하는 것 같습니다 storyboard
.
답변:
tintColor
iOS 7.0에서 막대 의 동작 이 변경되었습니다. 더 이상 막대의 배경에 영향을 미치지 않습니다.
설명서에서 :
barTintColor 클래스 참조
탐색 막대 배경에 적용 할 색조 색상입니다.
@property(nonatomic, retain) UIColor *barTintColor
토론
이 색상은 반투명 속성을로 설정하지 않는 한 기본적으로 반투명합니다 NO
.
유효성
iOS 7.0 이상에서 사용 가능합니다.
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
// iOS 7.0 or later
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
}else {
// iOS 6.1 or earlier
self.navigationController.navigationBar.tintColor = [UIColor redColor];
}
iOS 7 UI 전환 가이드 에서 언급했듯이이를 사용하여 iOS 버전을 확인할 수도 있습니다.
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
// iOS 6.1 or earlier
self.navigationController.navigationBar.tintColor = [UIColor redColor];
} else {
// iOS 7.0 or later
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
}
xib를 사용하여 편집
오래된 트위터의 Nav Bar 모양, 흰색 배경의 파란색 배경을 얻기 위해 원래 질문을 한 것은 Xcode의 Interface Builder를 사용하면 매우 쉽습니다.
원하는 것을 얻을 수 있습니다. 다음은 변경 위치를보다 쉽게 확인할 수있는 스크린 샷입니다.
막대 색조 만 변경해도 탐색 막대 또는 상태 표시 줄의 텍스트 색상은 변경되지 않습니다. 스타일도 변경해야합니다.
Default
와 Black
아이폰 OS 9에서 여전히 사용할 수있는 사용되지 않는 사람은 BlackOpaque
과 BlackTranslucent
의 조합에 의해 대체 된, Black
스타일과 반투명 틱 박스. Apple 개발자 웹 사이트의
self.navigationBar.barTintColor = [UIColor blueColor];
self.navigationBar.tintColor = [UIColor whiteColor];
self.navigationBar.translucent = NO;
// *barTintColor* sets the background color
// *tintColor* sets the buttons 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];
[[UINavigationBar appearance] setBarTintColor:[UIColor barColor]];
iOS 7에 추가
빠른 변경 탐색 모음 색상 :
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)!
]
16 진 코드를 사용하려는 경우 가장 좋은 방법은 다음과 같습니다.
먼저 이것을 수업 상단에 정의하십시오.
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
그런 다음 "application didFinishLaunchingWithOptions"안에 다음을 입력하십시오.
[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x00b0f0)];
00b0f0 대신 16 진수 코드를 입력하십시오.
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).
나는 이것이 누군가를 돕기를 바랍니다. 내가 본 답변이 마음에 들지 않았습니다. 코드를 최대한 깨끗하게 유지하고 싶습니다. 프로그래밍 방식으로하는 것이 잘못되었다고 말하는 것은 아니지만 나와 같은 사람들이 있습니다 .... 이것은 너희들을위한 것입니다.
Rajneesh071의 코드를 완성하기 위해 기본 동작이 iOS 6에서 7로 변경되었으므로 탐색 모음의 제목 색상 및 원하는 경우 글꼴을 설정할 수도 있습니다.
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7)
{
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.translucent = NO;
NSMutableDictionary *textAttributes = [[NSMutableDictionary alloc] initWithDictionary:mainNavController.navigationBar.titleTextAttributes];
[textAttributes setValue:[UIColor whiteColor] forKey:UITextAttributeTextColor];
self.navigationController.navigationBar.titleTextAttributes = textAttributes;
}
else
{
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
}
귀하 ViewContorller
또는 귀하의AppDelegate
if([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0)
{
//This is For iOS6
[self.navigationController.navigationBar setTintColor:[UIColor yellowColor]];
}
else
{
//This is For iOS7
[self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];
}
//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;
}
탐색 기반 응용 프로그램에서 색상을 변경할 수 있습니다
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];
}
#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]];
}
이 질문과 답변이 도움이됩니다. 그들과 함께 나는 navigationBar
흰색 제목과 버튼 텍스트로 원하는 진한 파란색을 설정할 수있었습니다 .
그러나 시계, 반송파, 신호 강도 등을 흰색으로 변경해야했습니다. 검은 색은 진한 파란색과 충분히 대조되지 않았습니다.
나는 이전의 대답 중 하나에 해당 솔루션을 간과 할 수 있습니다,하지만 난 내 최상위이 줄을 추가하여 그 변화를 만들 수 있었다 viewController
의 viewDidLoad
:
[self.navigationController.navigationBar setBarStyle:UIStatusBarStyleLightContent];
UIStatusBarStyleLightContent
작동하지만 것이 올바른 열거 것 setBarStyle:
입니다UIBarStyleBlack
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
}
색깔을 위해 :
[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]];
이미지
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar_320X44.png"] forBarMetrics:UIBarMetricsDefault];