iOS动画技术——iOS 7自定义过渡动画
2015-08-28 22:34
411 查看
自定义过渡动画
1.iOS用户总是抱怨iOS视图过渡动画太少,但在iOS 7之后,这个问题已经不再是问题。因为iOS 7允许用户自定义视图过渡动画。2.视图过渡,即视图之间的跳转,有两种情况:
树形结构导航,通过UINavigationController控制视图堆栈实现视图过渡模态导航,通过UIViewController控制实现的。
3.使用开源框架:HUAnmator, git地址:https://github.com/cinkster/HUAnimator
树形结构导航
UIViewControllerTransitioning:视图控制器过渡类
UINavigationController:导航控制器类
一。UIViewControllerTransitioning:视图控制器过渡类
1.包含的字符串常量:
UITransitionContextFromViewControllerKey:用于过渡上下文中,用于获得过渡前的视图控制器UITransitionContextToViewControllerKey:用于过渡上下文中,用于获得过渡后的视图控制器UITransitionContextFromViewKey:用于过渡上下文中,用于获得过渡前的视图UITransitionContextToViewKey:用于过渡上下文中,用于获得过渡后的视图2.UIViewControllerAnimatedTransitioning:视图控制器动画过渡协议
应用:如果我们要自定义过渡动画,需要实现这个协议。包含的方法:
必须实现的方法: 执行自定义动画:- (void)animateTransition:(id )transitionContext; 设置动画执行的时间:- (NSTimeInterval)transitionDuration:(id )transitionContext; 其中,参数UIViewControllerContextTransitioning类封装过渡动画的上下文对象,通过这个对象 我们可以获得过渡前后的视图控制器 UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; 可选方法: 动画结束的时候调用:- (void)animationEnded:(BOOL) transitionCompleted;
3.UIViewControllerContextTransitioning:视图控制器过渡上下文协议
用于获得过渡前后的视图控制器:- (UIViewController *)viewControllerForKey:(NSString *)key; 用于获得过渡前后的视图:- (UIView *)viewForKey:(NSString *)key; 其中,参数key为上面的4个字符串常量
二。UINavigationController:导航控制器类
1.UINavigationControllerDelegate:导航控制器委托
- (id )navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC 其中:参数UINavigationControllerOperation包含三个常量: UINavigationControllerOperationNone, UINavigationControllerOperationPush, UINavigationControllerOperationPop,
模态导航自定义过渡动画
模态导航自定过渡动画需要在视图控制中实现UIViewControllerTransitioningDelegate协议,它在UIViewControllerTransitioning类中定义,上面树形结构导航提到过相关文章推荐
- 第六讲 Block块语法及Block与数组的排序,ios字面量的使用(源代码上传)
- IOS 调发短信和邮件界面
- nagios维护之常见问题
- iOS 多线程初学 - 多种方法创建多线程
- nagios维护之添加监控
- AutoLayout -Masonry
- iOS:制作九宫格
- IOS中沙盒的基本介绍
- 斯坦福大学iOS应用开发教程学习笔记(第二课) 计算器实现(mvc实战)
- iOS-数据持久化(一)
- 高仿煎蛋iOS项目基础配置(2)
- IOS开发错误提示原因集合-----长期更新
- iOS 创建单例的两种方法
- iOS 开发流程笔记
- ios Block解决循环引用和回传值
- Xamarin iOS+MvvmCross TableCell add Button
- Xamarin IOS SearchBar 文本框设置
- iOS 代理 协议
- xamarin ios XibFree LinearLayout
- IOS编程中设置系统默认语言的方法