视图切换,没有NavigationController的情况下,一般会使用presentViewController来切换视图并携带切换时的动画,

其中切换方法如下:

– presentViewController:animated:completion: 弹出,出现一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil
– dismissViewControllerAnimated:completion:退出一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil

切换动画在压入一个新视图和弹出顶层视图均可以使用,下面只以压入视图为例。

presentModalViewController:animated:completion:使用系统自带四种动画

简单的实现方式:

[page2Controller setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];

[self presentModalViewController:myNextViewController animated:YES  completion:nil];

系统支持的四种动画:

typedef enum {

UIModalTransitionStyleCoverVertical=0, //默认方式,竖向上推

UIModalTransitionStyleFlipHorizontal, //水平反转

UIModalTransitionStyleCrossDissolve,//隐出隐现

UIModalTransitionStylePartialCurl,//部分翻页效果

} UIModalTransitionStyle;

presentModalViewController:animated:completion: 不用自带的四种动画效果

实现全翻页效果:

CATransition *animation = [CATransition animation];

animation.duration = 1.0;

animation.timingFunction = UIViewAnimationCurveEaseInOut;

animation.type = @"pageCurl";

//animation.type = kCATransitionPush;

animation.subtype = kCATransitionFromLeft;

[self.view.window.layer addAnimation:animation forKey:nil];

[self presentModalViewController:myNextViewController animated:NO completion:nil];

常見的轉換類型(type):

kCATransitionFade               //淡出

kCATransitionMoveIn          //覆盖原图

kCATransitionPush               //推出

kCATransitionReveal          //底部显出来

SubType:

kCATransitionFromRight

kCATransitionFromLeft    // 默认值

kCATransitionFromTop

kCATransitionFromBottom

设置其他动画类型的方法(type):

pageCurl   向上翻一页

pageUnCurl 向下翻一页

rippleEffect 滴水效果

suckEffect 收缩效果,如一块布被抽走

cube 立方体效果

oglFlip 上下翻转效果

最新文章

  1. C# 泛型
  2. 如何处理CSS3属性前缀
  3. eclipse Swt编程—窗口小部件widget
  4. mingw编译rtmp库
  5. 用手机访问本地环境的利器ngrok
  6. JAVA Socket超时浅析
  7. c/c++多线程编程中最好不要加volatile
  8. mws文件中的tab文件改为相对路径
  9. MacOS U盘安装
  10. PageRank——Google的民主表决算法
  11. “玲珑杯”ACM比赛 Round #18--最后你还是AK了(搜索+思维)
  12. WebView的使用--Hybrid App
  13. Swift 笔记汇总
  14. TSQL:A表字段与B表中的关联,关联条件中一列是随机关联的实现方式
  15. Java的this关键字在继承时的作用
  16. ROLAP、MOLAP和HOLAP区别
  17. python 机器学习中模型评估和调参
  18. python的前后端分离(一):django+原生js实现get请求
  19. mysql-sql语言参考
  20. QA:Initialization of bean failed; nested exception is java.lang.AbstractMethodError

热门文章

  1. Linux 硬盘分区生效命令partprobe
  2. .NET系列文章——近一年文章分类整理,方便各位博友们查询学习
  3. java获取注册ip
  4. Linux下查找文件:which、whereis、locate、find 命令的区别
  5. 强制浏览器使用兼容模式,Web.config,httpProtocol
  6. 卡通图像变形算法(Moving Least Squares)附源码
  7. 去除多余的cell 和最后一行cell显示顶头底线
  8. Linux 进程间通讯详解五
  9. ToolProvider.getSystemJavaCompiler() Return NULL!
  10. createElement与createDocumentFragment的点点区别