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를 사용하면 매우 쉽습니다.
- 문서 개요를 사용하여 탐색 모음을 선택하십시오.
- 속성 관리자의 탐색 모음 그룹에서 스타일을 기본값에서 검은 색으로 변경합니다. 탐색 및 상태 표시 줄의 배경색이 검은 색으로 바뀌고 텍스트가 흰색으로 바뀝니다. 따라서 앱이 실행 중일 때 상태 표시 줄의 배터리 및 기타 아이콘과 텍스트가 흰색으로 표시됩니다.
- 동일한 탐색 막대 그룹에서 막대 색조를 원하는 색상으로 변경하십시오.
- 탐색 막대에 막대 단추 항목이있는 경우 여전히 텍스트가 기본 파란색으로 표시되므로 속성 관리자,보기 그룹에서 색조를 흰색으로 변경하십시오.
원하는 것을 얻을 수 있습니다. 다음은 변경 위치를보다 쉽게 확인할 수있는 스크린 샷입니다.
막대 색조 만 변경해도 탐색 막대 또는 상태 표시 줄의 텍스트 색상은 변경되지 않습니다. 스타일도 변경해야합니다.
답변
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];
답변
에서 다음 viewDidLoad
을 설정하십시오.
self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
blueColor
원하는 색상으로 ( )을 변경하십시오 .
답변
빠른 변경 탐색 모음 색상 :
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];