[ios] iOS 7에서 탐색 막대 색상을 변경하는 방법은 무엇입니까?

iOS 7에서 내비게이션 바 색상을 어떻게 변경합니까?

기본적으로 Twitter Nav Bar와 같은 것을 달성하고 싶습니다 (Twitter가 업데이트되었습니다 iOS7). 탐색 모음을 a 상단에 내장했습니다 view controller. 원하는 것은 상단의 유틸리티 표시 줄과 함께 탐색 표시 줄 색상을 연한 파란색으로 변경하는 것입니다. 내에서 옵션을 찾지 못하는 것 같습니다 storyboard.



답변

tintColoriOS 7.0에서 막대 의 동작 이 변경되었습니다. 더 이상 막대의 배경에 영향을 미치지 않습니다.

설명서에서 :

barTintColor 클래스 참조

탐색 막대 배경에 적용 할 색조 색상입니다.

@property(nonatomic, retain) UIColor *barTintColor

토론
이 색상은 반투명 속성을로 설정하지 않는 한 기본적으로 반투명합니다 NO.

유효성

iOS 7.0 이상에서 사용 가능합니다.

UINavigationBar.h에서 선언

암호

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를 사용하면 매우 쉽습니다.

  • 문서 개요를 사용하여 탐색 모음을 선택하십시오.
  • 속성 관리자의 탐색 모음 그룹에서 스타일을 기본값에서 검은 색으로 변경합니다. 탐색 및 상태 표시 줄의 배경색이 검은 색으로 바뀌고 텍스트가 흰색으로 바뀝니다. 따라서 앱이 실행 중일 때 상태 표시 줄의 배터리 및 기타 아이콘과 텍스트가 흰색으로 표시됩니다.
  • 동일한 탐색 막대 그룹에서 막대 색조를 원하는 색상으로 변경하십시오.
  • 탐색 막대에 막대 단추 항목이있는 경우 여전히 텍스트가 기본 파란색으로 표시되므로 속성 관리자,보기 그룹에서 색조를 흰색으로 변경하십시오.

원하는 것을 얻을 수 있습니다. 다음은 변경 위치를보다 쉽게 ​​확인할 수있는 스크린 샷입니다.

iOS 시뮬레이터의 결과를 포함하여 필요한 변경을 수행 할 수있는 위치

막대 색조 만 변경해도 탐색 막대 또는 상태 표시 줄의 텍스트 색상은 변경되지 않습니다. 스타일도 변경해야합니다.


답변

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];