当前位置: 首页 > news >正文

ios按钮点击后翻转效果

代码是网上找到的,不过找到的时候直接复制下来不能用,稍微整理下,为和我一样水平的菜鸟观摩一下下。

 

(1)引入“QuartzCore.framework”库,头部引用。

 

 

C代码   收藏代码
  1. #include<QuartzCore/CoreAnimation.h>  

 

(2)直接上代码,你懂的。

 

 

C代码   收藏代码
  1. -(IBAction)buttonP:(id)sender{  
  2.     [self buttonAnimation:sender];  
  3. }  
  4.   
  5. - (CAAnimation *) animationRotate {  
  6.     CATransform3D rotationTransform  = CATransform3DMakeRotation( M_PI/2 , 0 , 1 , 0 );  
  7.     CABasicAnimation* animation;  
  8.     animation = [CABasicAnimation animationWithKeyPath:@"transform"];  
  9.     animation.toValue = [NSValue valueWithCATransform3D:rotationTransform];  
  10.     animation.duration = 3;  
  11.     animation.autoreverses = YES;  
  12.     animation.cumulative = YES;  
  13.     animation.repeatCount = 1;  
  14.     animation.beginTime = 0.1;  
  15.     animation.delegate = self;  
  16.     return animation;  
  17. }  
  18.   
  19. - (void)buttonAnimation:(id) sender{  
  20.     UIButton *theButton = sender;  
  21.     CAAnimation *myAnimationRotate = [self animationRotate];  
  22.     CAAnimationGroup* m_pGroupAnimation;  
  23.     m_pGroupAnimation = [CAAnimationGroup animation];  
  24.     m_pGroupAnimation.delegate = self;  
  25.     m_pGroupAnimation.removedOnCompletion = NO;  
  26.     m_pGroupAnimation.duration = 10;  
  27.     m_pGroupAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];     
  28.     m_pGroupAnimation.repeatCount = 1;  
  29.     m_pGroupAnimation.fillMode = kCAFillModeForwards;  
  30.     m_pGroupAnimation.animations = [NSArray arrayWithObjects:myAnimationRotate, nil];  
  31.     [theButton.layer addAnimation:m_pGroupAnimation forKey:@"animationRotate"];  
  32. }  
  33.     
  34. - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{  
  35.     //todo  
  36. }  

 

PS:

 

CATransform3DMakeRotation( M_PI/2 , 0 , 1 , 0 );第一个参数是旋转的角度,有一点需要著名,就是对象回按照你设定的角度的最短距离去旋转,后面三个参数分别是xyz(-1~1之间的值)代表的一个向量值。顺时针或者逆时针旋转尚未搞定具体是什么参数来控制的,有知道的朋友提醒下,谢谢!

 

 

 

转载于:https://www.cnblogs.com/lovewx/p/3824738.html

相关文章:

  • 为什么说IBM公司未来云计算中成功的关键是开源
  • 序列化 serialVersionUID
  • windows下的套接字IO模型
  • 第一周考试总结
  • ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)
  • 读书笔记-《JavaScript高级程序设计(第3版)》
  • ASP.NET MVC Model验证(一)
  • OpenCV+python轮廓
  • Objective-C语法之NSSet和NSMutableSet
  • 孤独与寂寞
  • 人工智能火了,为啥医疗成为最先受益者?
  • Java反射机制简单了解_Reflection
  • 前端 图表
  • Linux系统备份与还原
  • 如何使用 Gin 和 Gorm 搭建一个简单的 API 服务 (一)
  • 深入了解以太坊
  • [ JavaScript ] 数据结构与算法 —— 链表
  • angular学习第一篇-----环境搭建
  • emacs初体验
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • GraphQL学习过程应该是这样的
  • js正则,这点儿就够用了
  • mongodb--安装和初步使用教程
  • passportjs 源码分析
  • SQLServer之索引简介
  • Vue2.0 实现互斥
  • 爱情 北京女病人
  • 构建工具 - 收藏集 - 掘金
  • 码农张的Bug人生 - 见面之礼
  • 区块链分支循环
  • 通过git安装npm私有模块
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 正则与JS中的正则
  • 从如何停掉 Promise 链说起
  • # 安徽锐锋科技IDMS系统简介
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (floyd+补集) poj 3275
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (十)c52学习之旅-定时器实验
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [ABC294Ex] K-Coloring
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法
  • [codeforces]Levko and Permutation
  • [Flex][问题笔记]TextArea滚动条问题
  • [iOS]中字体样式设置 API
  • [LeetCode刷题笔记]1 - 两数之和(哈希表)
  • [na]wireshark抓包排错-tcp.flags.reset
  • [node] Node.js 缓冲区Buffer