programing

iOS 7 탐색 모음 텍스트 및 화살표 색상

powerit 2023. 4. 28. 21:44
반응형

iOS 7 탐색 모음 텍스트 및 화살표 색상

내비게이션 바의 배경을 검은색으로 설정하고 내부의 모든 색상을 흰색으로 설정하고 싶습니다.

그래서 저는 이 코드를 사용했습니다.

[[UINavigationBar appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [NSValue valueWithUIOffset:UIOffsetMake(0, -1)],
      NSForegroundColorAttributeName,
      [UIFont fontWithName:@"Arial-Bold" size:0.0],
      NSFontAttributeName,
      nil]];

그러나 뒤로 단추 텍스트 색, 화살표막대 단추에는 여전히 기본 파란색이 있습니다.
아래 이미지와 같이 색상을 변경하는 방법은 무엇입니까?

네비게이션 바

일부 속성의 동작UINavigationBariOS 7에서 변경되었습니다. 아래 이미지에서 확인할 수 있습니다.

여기에 이미지 설명 입력


여러분과 함께 나누고 싶은 아름다운 두 링크.자세한 내용은 다음 링크를 참조하십시오.

  1. iOS 7 UI 전환 가이드.
  2. iOS 7용 앱을 업데이트하는 방법.

barTintColor에 대한 Apple 설명서는 다음과 같이 말합니다.

반투명 속성을 아니요로 설정하지 않으면 이 색상은 기본적으로 반투명하게 됩니다.

샘플 코드:

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
[self.navigationController.navigationBar 
 setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
self.navigationController.navigationBar.translucent = NO;

여기에 이미지 설명 입력

이것은 제가 이해하는 데 반나절 정도 걸렸지만, 이것이 저에게 효과가 있었습니다.탐색 컨트롤러를 초기화하는 rootViewController에서 이 코드를 내 viewDidAppear 메서드 안에 넣었습니다.

//set bar color
[self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:85.0/255.0 green:143.0/255.0 blue:220.0/255.0 alpha:1.0]];
//optional, i don't want my bar to be translucent
[self.navigationController.navigationBar setTranslucent:NO];
//set title and title color
[self.navigationItem setTitle:@"Title"];
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];
//set back button color
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal];
//set back button arrow color
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

여기에 대한 나의 전체 게시물.

스위프트 3, ios 10

색상을 전역적으로 할당하려면 AppDelegate에서didFinishLaunchingWithOptions:

let textAttributes = [NSForegroundColorAttributeName:UIColor.white]
UINavigationBar.appearance().titleTextAttributes = textAttributes

스위프트 4, iOS 11

let textAttributes = [NSAttributedStringKey.foregroundColor:UIColor.white]
UINavigationBar.appearance().titleTextAttributes = textAttributes

Vin의 대답은 저에게 아주 잘 어울렸습니다.다음은 Xamarin.i를 사용하는 C# 개발자를 위한 동일한 솔루션입니다.OS/MonoTouch:

var navigationBar = NavigationController.NavigationBar; //or another reference
navigationBar.BarTintColor = UIColor.Blue;
navigationBar.TintColor = UIColor.White;
navigationBar.SetTitleTextAttributes(new UITextAttributes() { TextColor = UIColor.White });
navigationBar.Translucent = false;

스위프트 / iOS8

let textAttributes = NSMutableDictionary(capacity:1)
textAttributes.setObject(UIColor.whiteColor(), forKey: NSForegroundColorAttributeName)
navigationController?.navigationBar.titleTextAttributes = textAttributes
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

색을 변경하려면UINavigationBar다음 코드를 사용하여 올바른 방법으로 제목을 지정합니다.

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];

UITextAttributeTextColor최신 버전인 7에서는 더 이상 사용되지 않습니다.사용하다NSForegroundColorAttributeName대신.

제목 텍스트 크기와 텍스트 색상을 변경하려면 NSDictionary 제목을 변경해야 합니다.해당 객체 중 2개에 대한 TextAttributes:

    self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:13.0],NSFontAttributeName,
                                                                  [UIColor whiteColor], NSForegroundColorAttributeName, 
                                                                  nil];

저는 이전 답들이 맞다고 생각합니다, 이것은 같은 일을 하는 또 다른 방법입니다.누군가에게 유용하게 쓰일 경우를 대비해 이곳에서 공유하고 있습니다.ios7에서 navbar의 텍스트/제목 색상을 변경할 수 있는 방법은 다음과 같습니다.

UIColor *red = [UIColor colorWithRed:254.0f/255.0f green:0.0f/255.0f blue:0.0f/255.0f alpha:1.0];
NSMutableDictionary *navBarTextAttributes = [NSMutableDictionary dictionaryWithCapacity:1];
[navBarTextAttributes setObject:red forKey:NSForegroundColorAttributeName ];
self.navigationController.navigationBar.titleTextAttributes = navBarTextAttributes;

는 것 같습니다.Accessibility의 제어 기능iOS Settings탐색 모음 단추에서 수행하려는 거의 모든 작업을 색상별로 재정의합니다.모든 설정을 기본 위치(증가 대비, 굵게 표시된 텍스트, 단추 모양 등을 꺼짐으로 설정)로 설정했는지 확인하십시오. 그렇지 않으면 변경된 내용이 표시되지 않습니다.일단 제가 그것을 하자, 모든 색상 변경 코드가 예상대로 작동하기 시작했습니다.모두 끌 필요는 없을지도 모르지만, 더 이상 추구하지는 않았습니다.

스위프트 5/iOS 13

컨트롤러에서 제목 색상을 변경하는 방법

UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]

언급URL : https://stackoverflow.com/questions/19029833/ios-7-navigation-bar-text-and-arrow-color

반응형