0

모든 내비게이션 막대를 사용자 정의하기 위해 iOS 5 UINavigationBarUIAppearance 프로토콜을 사용하고 있습니다.UINavigationBar 사용자 정의 제목보기

  • 첫 번째는 색이 clearColor하지만 검은 색으로 나타나지 않는 것입니다 : 나는이 문제가

    - (void)customizeApperance 
    { 
        [[UINavigationBar appearance] setTintColor:[UIColor clearColor]]; 
        [[UINavigationBar appearance] setAlpha:0.7]; 
        UIImageView *titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"title.png"]]; 
        [[UINavigationBar appearance] setTitleView:titleView]; 
    } 
    

    :

    여기 내 사용자 정의 기능입니다. 어떤 제안?

  • 제목보기가 전혀 표시되지 않습니다. Ray Wenderlich[[rootViewController navigationItem] setTitleView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"miniLogo.png"]]]applicationDidFinishLaunching에 추가하여이를 수행하는 방법을 보여줍니다. 하지만이 문제는 제목보기가 루트보기 컨트롤러에만 추가된다는 것입니다. UINavigationController을 사용하고 있으며 rootViewControllernavigationController (AppDelegate의 내 탐색 컨트롤러 이름)으로 교체하는 데 지쳐 있었지만 제목보기를 전혀 볼 수 없었습니다. 어떻게 해결할 수 있습니까? customizeApperance()에서 작동하지 않는 이유는 무엇입니까? 모양을 사용하는 요점은 (내가 함수 위에했던 것처럼) 한 번만 타이틀보기를 만들고 모든 탐색 막대에서 전역으로 보이게하는 것이 아닌가? 어떻게하면 될까요?

+0

누군가는 생각을 가지고있다? – darksky

+0

이 게시물은 도움이 될 것입니다. [맞춤 uinavigationbar-배경] [1] [1] : http://stackoverflow.com/questions/704558/custom-uinavigationbar-background 실제로'clearColor'를 원 – prashant

답변

6

[UIColor clearColor]은 완전 투명색 (알파 = 0)입니다. 색조 색으로 설정하면 (검정색) 배경이 빛납니다. 아마도 [UIColor whiteColor]을 원하십니까?

titleViewUINavigationItem의 속성이고 각보기 컨트롤러는 자신의 navigationItem입니다. 따라서 전역으로 제목보기를 설정할 수는 없습니다.

[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 
+0

있도록 배경 그것 뒤에 투명하게 표시됩니다. 그게 끝날 수 있습니까? – darksky

+0

@Darksky : 'self.navigationController.navigationBar.translucent = YES;'를 시도하십시오. –

+0

바를 반투명하게 만드는 @MartinR 그러나 버튼은 여전히 ​​단색 검정색입니다. http://stackoverflow.com/questions/3081203/custom-background-transparent-background-on-uibarbuttonitem – Gujamin

1

당신이 titleView.opaque = NO;를 시도 :하지만 당신은 아마도 그 도움, 모양 프로토콜 UINavigationBar의 배경 이미지를 설정할 수 있습니까? 이 값이 YES으로 설정되어 있으면 (기본적으로 initWithImage를 사용하고 있으므로 :) 드로잉 시스템은 뷰가 전체 경계를 채우고 프레임과 겹치는 그림을 그리지 않아도된다고 가정합니다.

0

setTitleView : NavigationItem의 메소드입니다. 그러나 당신은 탐색 바에 그것을 부르고있다