IT

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

lottoking 2020. 9. 8. 08:15
반응형

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에 넣는 앱 전체에서 지속됩니다.


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


스위프트 :

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

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

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

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


뷰 컨트롤러 에서이 코드를 사용하여 UINavigation 배경색을 수 있습니다.

self.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:10.0f/255.0f green:30.0f/255.0f blue:200.0f/255.0f alpha:1.0f];

Swift 4.2 및 Xcode 10.1에서

AppDelegate에서 전체로 직접 탐색 모음 색상을 설명 수 있습니다.

에서 didFinishLaunchingWithOptions launchOptions:코드의 라인 아래 쓰기

UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().barTintColor = UIColor(red: 2/255, green: 96/255, blue: 130/255, alpha: 1.0)

여기

tintColor 는 뒤로 버튼, 메뉴 라인 이미지 등 배경 이미지를 설정하기위한 것입니다. (아래 좌우 메뉴 이미지 참조)

barTintColor탐색 모음 배경색입니다.

특정 뷰 컨트롤러 탐색 모음 색상을 설정하려면 아래 코드를 작성하십시오. viewDidLoad()

//Add navigation bar colour
navigationController?.navigationBar.barTintColor = UIColor(red: 2/255, green: 96/255, blue: 130/255, alpha: 1.0)
navigationController?.navigationBar.tintColor = UIColor.white

여기에 이미지 설명 입력


색상 코드가 여기서 문제입니다. 195/255를 사용하는 대신 0.7647 또는 195.f / 255.f를 사용하십시오. 문제는 플로트 변환이 제대로 작동하지 않는 것입니다. 정확한 부동 소수점 값을 사용해보십시오.

참고 URL : https://stackoverflow.com/questions/17014713/how-to-change-uinavigationbar-background-color-from-the-appdelegate

반응형