[ios] AppDelegate에서 UINavigationBar 배경색을 변경하는 방법

UINavigationBar배경 이미지 를 변경하는 방법을 알고 있습니다.

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nabbar"] forBarMetrics:UIBarMetricsDefault];

바를 각각 다른 색상으로 설정하는 방법을 알고 있습니다 Views. ….. 이제 이미지사용하지 않고 배경색을 app delegate. 각 뷰에서 매번 설정하고 싶지 않으며 CGRect.

시도 [[UINavigationBar appearance] setBackgroundColor:[UIColor colorWithRed:33/255.0 green:34/255.0 blue:36/255.0 alpha:1.0]];했지만 작동하지 않으며 앱 대리자에서 작동하는 코드를 찾을 수 없습니다.

누구든지 올바른 방향으로 나를 가리킬 수 있습니까?



답변

당신이 사용할 수있는 [[UINavigationBar appearance] setTintColor:myColor];

iOS 7부터 [[UINavigationBar appearance] setBarTintColor:myColor];[[UINavigationBar appearance] setTranslucent:NO].

[[UINavigationBar appearance] setBarTintColor:myColor];
[[UINavigationBar appearance] setTranslucent:NO];


답변

색조가 아닌 배경색을 변경하려면 다음 코드가 작동합니다.

[self.navigationController.navigationBar setBarTintColor:[UIColor greenColor]];
[self.navigationController.navigationBar setTranslucent:NO];


답변

iOS 7에서이 작업을 수행합니다.

[[UINavigationBar appearance] setBarTintColor:myColor];


답변

신속한 구문 :

    UINavigationBar.appearance().barTintColor = UIColor.whiteColor() //changes the Bar Tint Color

AppDelegate didFinishLaunchingWithOptions에 넣었고 앱 전체에서 지속됩니다.


답변

스위프트 :

self.navigationController?.navigationBar.barTintColor = UIColor.red
self.navigationController?.navigationBar.isTranslucent = false


답변

Xcode 6.3.1로 쉽게 할 수 있습니다. 문서 개요에서 NavigationBar를 선택합니다. Attributes Inspector를 선택합니다. 반투명을 선택 취소합니다. Bar Tint를 원하는 색상으로 설정합니다. 끝난!


답변

다른 답변에서 언급했듯이을 사용할 수 setTintColor:있지만 단색을 원하며 색조 색상 AFAIK를 설정할 수 없습니다.

해결책은 프로그래밍 방식으로 이미지를 만들고 .NET을 통해 모든 탐색 모음의 배경 이미지로 해당 이미지를 설정하는 것 UIAppearance입니다. 이미지 크기에 관해서는 1×1 픽셀 이미지가 작동하는지 또는 정확한 크기의 내비게이션 막대가 필요한지 잘 모르겠습니다. 이 질문 의 두 번째 답변 에서 이미지를 만드는 방법을 확인하세요.

조언으로, 나는 이러한 유형의 것들로 앱 델리게이트를 “오버로드”하고 싶지 않습니다. 내가하는 경향이있는 것은 내가 원하는 모든 UIAppearance 항목을 설정하는 AppearanceConfiguration하나의 공용 메서드 configureAppearance로 명명 된 클래스를 만든 다음 앱 대리자에서 해당 메서드를 호출하는 것입니다.