iphone - 如何在 UIViewController 推送时为 UINavigationBar 背景更改设置动画?

标签 iphone objective-c ios animation uinavigationbar

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

最佳答案

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

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

关于iphone - 如何在 UIViewController 推送时为 UINavigationBar 背景更改设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823068/

相关文章:

ios - 如何在使用部分索引时按字母顺序填充 tableView 中的数据

ios - 在 iPhone 上的弹出窗口中呈现 UIAlertController ActionSheet

iphone - 如何自定义EKEventViewController的UITableView?

objective-c - 从 sqlite 数据库 Objective-C 播放音频文件

javascript - 从 iPhone 向 PHP 提交表单

java - JmDNS 与 iOS Bonjour 的互操作性

ios - 将 Quartz/Core Graphics 绘图保存到核心数据或文本文件并再次加载以继续绘图

iphone - 管理用于缓存图像的 iPhone 应用程序沙箱 tmp 目录大小

从 AVCaptureSession 捕获的 iPhone 图像比例

iphone - 获取与 iphone 设置应用程序中类似的时区列表