iOS 7 또는 6에서 탐색 모음 색상을 변경하는 방법은 무엇입니까?
내비게이션 바 색상의 색상을 변경하고 싶은데 색조를 변경해야하는지 배경을 변경해야하는지 잘 모르겠습니다. iOS 7이 더 평평한 디자인을 추구한다는 것을 알고 있지만 ( 그라데이션 제거를 권장 하기도 하지만) 두 가지를 해독하는 데 문제가 있습니다. 배경색을 설정해도 아무것도하지 않습니다.
이 이미지에서 배경은 녹색으로 설정되어 있지만 막대는 여전히 파란색입니다.
바에 대한 tintColor의 동작이 iOS 7.0에서 변경되었습니다. 더 이상 바의 배경에 영향을주지 않으며 UIView에 추가 된 tintColor 속성에 대해 설명 된대로 작동합니다. 바의 배경에 색을 입히려면 -barTintColor를 사용하십시오.
navController.navigationBar.barTintColor = [UIColor navigationColor];
iOS 7과 유사한 iOS 6 의 내비게이션 막대에 단색을 사용하려면 다음을 사용하십시오.
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[UIColor greenColor]];
에 아이폰 OS 7 을 사용하는 barTintColor
다음과 같은 :
navigationController.navigationBar.barTintColor = [UIColor greenColor];
또는
[[UINavigationBar appearance] setBarTintColor:[UIColor greenColor]];
// iOS 7에서 :-
[self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];
// iOS 6에서 :-
[self.navigationController.navigationBar setTintColor:[UIColor yellowColor]];
에서 배경색 속성은 무시 UINavigationBar
되므로 모양과 느낌을 조정 tintColor
하려면 UINavigationBar 클래스 참조 (예 :)의 "바 모양 사용자 지정"에 나열된 다른 메서드 를 사용 하거나 호출 해야합니다 setBackgroundImage:forBarMetrics:
.
이 tintColor
속성은 iOS 7에서 다르게 작동하므로 배경 이미지를 사용하여 iOS 7과 이전 버전간에 일관된 모양을 원하는 경우 가장 좋은 방법 일 수 있습니다. 또한 스토리 보드에서 배경 이미지를 구성 할 수 있다는 것을 언급 할 가치, 당신은을 만들어야합니다 IBOutlet
당신에 UINavigationBar
과에서 변경 viewDidLoad
또는 다른 적절한 장소.
한 가지 더, UIPopover 에서 내비게이션 bg 색상을 변경하려면 다음 과 같이 설정 barStyle
해야합니다.UIBarStyleBlack
if([UINavigationBar instancesRespondToSelector:@selector(barTintColor)]){ //iOS7
navigationController.navigationBar.barStyle = UIBarStyleBlack;
navigationController.navigationBar.barTintColor = [UIColor redColor];
}
iOS 6 및 7 모두에 대해 올바르게 설정하는 방법은 다음과 같습니다.
+ (void)fixNavBarColor:(UINavigationBar*)bar {
if (iosVersion >= 7) {
bar.barTintColor = [UIColor redColor];
bar.translucent = NO;
}else {
bar.tintColor = [UIColor redColor];
bar.opaque = YES;
}
}
버전 확인이 포함 된 완전한 코드.
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
// do stuff for iOS 7 and newer
[self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];
}
else {
// do stuff for older versions than iOS 7
[self.navigationController.navigationBar setTintColor:[UIColor yellowColor]];
}
iOS 버전을 확인하고 내비게이션 바의 색조를 설정하기 만하면됩니다.
if (SYSTEM_VERSION_LESS_THAN(@"7.0")) {
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.9529 green:0.4392 blue:0.3333 alpha:1.0];
}else{
self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0.9529 green:0.4392 blue:0.3333 alpha:1.0];
self.navigationItem.leftBarButtonItem.tintColor = [UIColor whiteColor];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
게시 된 답변을 바탕으로 이것은 나를 위해 일했습니다.
/* check for iOS 6 or 7 */
if ([[self navigationController].navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
[[self navigationController].navigationBar setBarTintColor:[UIColor whiteColor]];
} else {
/* Set background and foreground */
[[self navigationController].navigationBar setTintColor:[UIColor whiteColor]];
[self navigationController].navigationBar.titleTextAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:[UIColor blackColor],UITextAttributeTextColor,nil];
}
you can add bellow code in appdelegate.m .if your app is navigation based
// for background color
[nav.navigationBar setBarTintColor:[UIColor blueColor]];
// for change navigation title and button color
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],
NSForegroundColorAttributeName,
[UIFont fontWithName:@"FontNAme" size:20],
NSFontAttributeName, nil]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
AppDelegate.m의 didFinishLaunchingWithOptions ()에 아래 코드를 삽입하십시오.
[[UINavigationBar appearance] setBarTintColor:[UIColor
colorWithRed:26.0/255.0 green:184.0/255.0 blue:110.0/255.0 alpha:1.0]];
NavigationBar의 색상을 변경하려면 다음 코드 (C #)를 사용하고 있습니다.
NavigationController.NavigationBar.SetBackgroundImage (new UIImage (), UIBarMetrics.Default);
NavigationController.NavigationBar.SetBackgroundImage (new UIImage (), UIBarMetrics.LandscapePhone);
NavigationController.NavigationBar.BackgroundColor = UIColor.Green;
트릭은 기본 배경 이미지를 제거하면 색상이 표시된다는 것입니다.
탐색 모음의 색상을 변경하려면 barTintColor
해당 속성을 사용 하십시오. 또한 색상을 설정 tintColor
하면 버튼처럼 내비게이션 바의 항목에 영향을줍니다.
FYI, you want to keep iOS 6 style bar, make a background image looks like previous style and set it.
For more detail, you can get more information from the following link:
In iOS7, if your navigation controller is contained in tab bar, splitview or some other container, then for globally changing navigationbar appearance use following method ::
[[UINavigationBar appearanceWhenContainedIn:[UITabBarController class],nil] setBarTintColor:[UIColor blueColor]];
Try the code below in the - (void)viewDidLoad
of your ViewController.m
[[[self navigationController] navigationBar] setTintColor:[UIColor yellowColor]];
this did work for me in iOS 6.. Try it..
I'm not sure about changing the tint vs the background color but this is how you change the tint color of the Navigation Bar:
Try this code..
[navigationController.navigationBar setTintColor:[UIColor redColor];
//Red as an example.
참고URL : https://stackoverflow.com/questions/18177010/how-to-change-navigation-bar-color-in-ios-7-or-6
'Programing' 카테고리의 다른 글
B-tree faster than AVL or RedBlack-Tree? (0) | 2020.11.19 |
---|---|
스크롤 뷰 내 레이아웃 하단에보기 추가 (0) | 2020.11.19 |
네이티브 테이블 'performance_schema'. '???' (0) | 2020.11.19 |
VBA Excel의 진행률 표시 줄 (0) | 2020.11.19 |
Rails 3.1.0 마이그레이션에서 remove_index의 올바른 구문은 무엇입니까? (0) | 2020.11.19 |