2012-05-30 13 views
8

Uygulamam, kullanıcılara hiyerarşide hangi seviyede olduklarını belirtmek için UINavigationBar için iki farklı arka plan kullanmaktadır. İkinci arka plana ihtiyaç duyan bir UIViewController'ı çalıştırdığımda, animasyondan yoksundur, UIViewController'a basıldığında arka plan hemen değişir. Bunu nasıl değiştirebilirim, böylece görünüm değiştirilirken arka plan değişikliği değişebilir mi?UIViewController push'teki UINavigationBar arka plan değişikliğini nasıl canlandırabilirim?

cevap

17

Bu eski iplik olduğunu biliyorum, ama bu benim için çalıştı:

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];   

Yeri Bu viewDidLoad yöntemi içinde. QuartzCore çerçevesini bağlamanız/içe aktarmanız gerekir.

+0

Bunu uzun zamandır terk ettim, ancak yine de gönderdiğiniz için teşekkürler. Bu birgün işe yarayabilir. – bpercevic

İlgili konular