[ios] iOS 7 UIBarButton 뒤로 버튼 화살표 색상

뒤로 버튼 화살표를 변경하려고합니다.

여기에 이미지 설명을 입력하십시오

현재 다음을 사용하여 텍스트 크기와 뒤로 버튼의 텍스트 색상을 제어하고 있습니다.

[[UIBarButtonItem appearance] setTitleTextAttributes:
  [NSDictionary dictionaryWithObjectsAndKeys:
    [UIColor whiteColor], UITextAttributeTextColor,
    [UIFont boldSystemFontOfSize:16.0f], UITextAttributeFont,
    [UIColor darkGrayColor], UITextAttributeTextShadowColor,
    [NSValue valueWithCGSize:CGSizeMake(0.0, -1.0)], UITextAttributeTextShadowOffset,
  nil] forState:UIControlStateNormal];

그러나 뒤로 버튼의 화살표 색상 만 변경하려면 어떻게해야합니까?



답변

특정 네비게이션 컨트롤러의 뒤로 버튼 셰브론 색상을 변경하려면 * :

self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

* 내비게이션 컨트롤러가 2 개 이상인 앱을 사용하는 경우이 갈매기 색을 각각에 적용하려면 모양 프록시를 사용하여 다음과 같이 모든 네비게이션 컨트롤러에 대해 뒤로 버튼 갈매기 모양을 설정하십시오.

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

그리고 좋은 측정을 위해 신속하게 (댓글에서 Jay Mayu에게 감사드립니다) :

UINavigationBar.appearance().tintColor = UIColor.whiteColor()


답변

전체 앱의 tintColor를 설정해야합니다.

self.window.tintColor = [UIColor redColor];

또는 스위프트 3에서 :

self.window?.tintColor = UIColor.blue

출처 : iOS 7 UI 전환 안내서


답변

이 방법을 사용하여 전체 앱 탐색 막대에서 색상을 설정할 수 있습니다

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
(NSDictionary *)launchOptions{
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
}


답변

이 방법으로 화살표의 색 (뒤로 단추 제목의 색이 아닌) 만 변경할 수 있습니다.

[[self.navigationController.navigationBar.subviews lastObject] setTintColor:[UIColor blackColor]];

탐색 줄에는 화살표를 나타내는 _UINavigationBarBackIndicatorView 유형 (하위보기 배열의 마지막 항목)의 하위보기가 포함됩니다.

결과는 뒤로 버튼 화살표와 뒤로 버튼 제목의 색상이 다른 탐색 막대입니다


답변

스토리 보드를 사용하는 경우 탐색 모음 색조 색상을 설정할 수 있습니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


답변

navigationController를 초기화하는 rootViewController 내부에서이 코드를 viewDidAppear 메소드에 넣습니다.

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


답변

iOS 6에서 tintColor는 탐색 막대, 탭 막대, 도구 모음, 검색 막대 및 범위 막대의 배경을 채색했습니다. iOS 7에서 막대 배경을 색조하려면 barTintColor 속성을 대신 사용하십시오.

iOS 7 디자인 리소스 iOS 7 UI 전환 가이드