2012-05-30 9 views
8

Meine App verwendet zwei verschiedene Hintergründe für die UINavigationBar, um dem Benutzer anzuzeigen, in welcher Hierarchieebene er sich befindet. Wenn ich einen UIViewController schiebe, der den zweiten Hintergrund benötigt und keine Animation enthält, ändert sich der Hintergrund sofort, sobald der UIViewController gedrückt wird. Wie kann ich das animieren, so dass die Hintergrundänderung mit der Änderung der Ansicht verschwindet?Wie kann ich die UINavigationBar-Hintergrundänderung beim UIViewController-Push animieren?

Antwort

17

Ich weiß, das ein alter Thread, aber das war für mich:

CATransition *transition = [CATransition animation]; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; 
transition.type = kCATransitionFade; 
transition.duration = 0.5; 

[self.navigationController.navigationBar.layer addAnimation:transition forKey:nil]; 
[self.navigationController.navigationBar setBackgroundImage:[[UIImage imageNamed:@"navigationbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(44, 20, 44, 20)] forBarMetrics:UIBarMetricsDefault];   

Dieses in Ihrem viewDidLoad Methode. Sie müssen das QuartzCore Framework verknüpfen/importieren.

+0

Ich habe das schon lange aufgegeben, aber danke fürs Posting trotzdem. Dies kann eines Tages nützlich sein. – bpercevic

Verwandte Themen