IOS7中ViewController切换动画
来源:互联网 发布:开发游戏的软件 编辑:程序博客网 时间:2024/06/17 21:36
IOS的API给出了两种切换ViewController方式:
1、
- (void)presentViewController: animated: completion:
- (void)dismissViewControllerAnimated: completion:
2、(这里不做展开)
- (void)pushViewController: animated:
- (UIViewController *)popViewControllerAnimated:
IOS7可以自定义这两种方式的切换动画,要怎样实现呢?首先就要说下@Protocol UIViewControllerAnimatedTransitioning这个协议。
UIViewControllerAnimatedTransitioning协议需实现以下方法:
- (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext 在这里根据上下文(UIViewControllerContextTransitioning)返回切换动画时间。
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext 在这里根据上下文自定义切换动画。
上面提到的上下文UIViewControllerContextTransitioning,其为开发者提供了切换相关的内容,包含从哪儿ViewController切换到哪个ViewController的相关信息。这个API的重要方法包括:
- (UIViewController *)viewControllerForKey:(NSString *)key 通过提供一个key来获取切出或切入的Viewcontroller,SDK中key包括有UITransitionContextFromViewController和UITransitionContextToViewController 分别表示切出切入。
- (UIView *)containerView 切换发生时的容器,开发者应该- (void)animateTransition:方法中将切出ViewController总容器中移除,将切入ViewController添加到容器中。
- (CGRect)initialFrameForViewController:(UIViewController *)vc 获取某个ViewController的初始frame
- (CGRect)finalFrameForViewController:(UIViewController *)vc 获取某个ViewController切换结束时的frame
- (void)completeTransition:(BOOL)didComplete 报告切换已经完成
以上介绍完UIViewControllerAnimatedTransitioning协议的一些方法以及相关的一些信息,下面将讲UIViewControllerAnimatedTransitioning该怎样用。
1、首先是在开头处提到的第一种切换方式中使用UIViewControllerAnimatedTransitioning来自定义切换动画。
要讲这个,得先了解 UIViewControllerTransitioningDelegate,通过实现这个协议的两个方法(切入ViewController的transitioningDelegate需设置为实现改协议的对象):
- (id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source{ return self.drawerAnimation;}- (id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed{ return self.popAnimation;}两个方法返回UIViewControllerAnimatedTransitioning对象实现自定义切换动画。
2、第二种切换方式使用UIViewControllerAnimatedTransitioning实现自定义切换动画。
这种切换方式是通过UINavigationController来实现的,可自定义实现UINavigationControllerDelegate的UINavigationController来自定义切换动画,自定义的UINavigationController实现一下方法:
- (id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC{ if (operation == UINavigationControllerOperationPush) { return self.drawerAnimation; } return self.animation;}通过operation分辨push还是pop来分别实现切入切出动画,同样,这个方法返回UIViewControllerAnimatedTransitioning对象。
以上是对IOS7的ViewController切换动画自定义的一些简单说明,博主文字功底不好,表述有不对请指正。
- IOS7中ViewController切换动画
- iOS7中的ViewController切换
- iOS7中的ViewController切换
- iOS7中的ViewController切换
- iOS7中的ViewController切换
- iOS7 中的 ViewController切换
- iOS7中的ViewController切换
- iOS7中的ViewController切换
- iOS7中的ViewController切换
- iOS7中的ViewController切换(二.自定义容器控制器动画方式)
- 转载:iOS7中的ViewController切换
- 自定义viewController切换动画
- iOS开发中ViewController切换动画的制作
- iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present dismis
- iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present
- iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present dismis
- ios7 手势滑动切换ViewController 问题总结
- ViewController转场动画的切换
- 内部类
- 安卓程序基本结构分析
- 理解Android的Http协议
- 实现字符串的查找和替换
- hdu 1016 Prime Ring Problem (DFS)
- IOS7中ViewController切换动画
- XCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit。通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能。本文将演示如何在
- 接口
- POJ 1663(水题)
- Linux系统命令大全
- 1018. Public Bike Management (30)
- Object
- c#文件浏览器
- PostgreSQL实用SQL