2014-12-11 3 views
0

흰색 UINavigatinonBar에서 투명 UINavigationBar으로 이동하려고합니다.투명한 배경 이미지로 UINavigationBar로 전환하면 검은 색 깜박임이 발생합니다.

self.navigationController.navigationBar.hidden = NO; 
[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]]; 
[self.navigationController.navigationBar setTranslucent:NO]; 

그것이 아닌 반투명를 유지하는 것이 중요합니다 : 내 루트 뷰 컨트롤러에서

,이 설정입니다. 이 애니메이션을 제외하고, 거의 잘 어울리는

// set title of navbar 
self.title = [self.data objectForKey:@"title"]; 
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}]; 
// 

// IMPORTANT PART: make the nav bar transaparent - no prerequisites. 
self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; 
self.navigationController.navigationBar.shadowImage = [UIImage new]; 
self.navigationController.navigationBar.translucent = YES; 

// set custom back button 
UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(16, 31, 22, 20)]; 
UIImage *backImage = [UIImage imageNamed:@"backButtonDetail"]; 
[backButton setBackgroundImage:backImage forState:UIControlStateNormal]; 
[backButton setTitle:@"" forState:UIControlStateNormal]; 
[backButton addTarget:self action:@selector(popBack) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
self.navigationItem.leftBarButtonItem = backButtonItem; 

: 내가 애니메이션을 할 때 당신이 볼 수 있듯이

enter image description here

가, 배경이 검정색으로 변합니다 이 두 번째 뷰 컨트롤러의 설정입니다 . 흰색을 대상 색으로 희미하게하고 싶습니다. 이제 검정색 배경에서 움직입니다.

내비게이션 막대 아래에 맞춤 UIView 설정을 시도했지만 작동하지 않았습니다.

나는 지금이 문제에 관해서 매우 분실했고 어떤 도움을 주시면 감사하겠습니다.

+0

UIImageView를 배치하고 두 번째 View Controller에서 색상을 흰색으로 설정해보십시오. 탐색 막대가 사용 가능하도록 탐색 막대 뒤에 채워져 있는지 확인하십시오. –

+0

문제의 픽스를 찾았습니까? 감사. – dorin

+0

아직 아니야. 나는 대답을 제공 할 수있는 사람과 매우 행복 할 것이다! – bdv

답변

3

는 최근이 같은 문제로 실행 단지 AppDelegate에의 didFinishLaunchingWithOptions

window.backgroundColor = UIColor.whiteColor() 

당신은 이미 다음 창에 대한 참조가없는 경우

에서 창의 배경 색상을 설정하여 주위에 얻을 수있었습니다
UIApplication.sharedApplication().delegate?.window.backgroundColor = ... 

이 방법이 가장 깨끗한 해결책입니다. 조금 늦더라도 도움이되기를 바랍니다.

관련 문제