如何在UIViewController推送时动画化UINavigationBar背景更改?

8

我的应用程序使用两个不同的背景来表示用户在层次结构中处于哪个级别。当我推送需要第二个背景的UIViewController时,缺少动画效果,即UIViewController被推送后背景立即更改。如何使背景变化随着视图的更改而渐变,以便动画效果更加自然流畅?

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

我早就放弃了这个,但还是谢谢你的发布。这可能在将来会有用。 - bpercevic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接