8

我的应用程序为 UINavigationBar 使用两种不同的背景来向用户指示他们在层次结构中的哪个级别。当我推送一个需要第二个背景的 UIViewController 时,它缺少动画,一旦 UIViewController 被推送,背景就会立即改变。我如何制作动画,以便背景变化随着视图的变化而消失?

4

1 回答 1

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框架。

于 2013-06-07T21:15:49.783 回答