如何在UIViewController push上为UINavigationBar背景更改设置动画?

时间:2012-05-30 19:36:14

标签: iphone objective-c ios animation uinavigationbar

我的应用程序为UINavigationBar使用两个不同的背景来向用户指示他们所处的层次结构中的级别。当我按下需要第二个背景的UIViewController它缺少动画时,一旦按下UIViewController,背景会立即改变。我如何设置动画,以便在视图改变时背景变化消失?

1 个答案:

答案 0 :(得分:18)

我知道这是一个老线程,但这对我有用:

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

将其放在viewDidLoad方法中。您需要链接/导入 QuartzCore 框架。