ios开发之核心动画四:核心动画-Core Animation--CABasicAnimation基础核心动画
2024-08-31 20:46:00
#import "ViewController.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. } -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //1.创建动画对象(设置layer的属性值.)
CABasicAnimation *anim = [CABasicAnimation animation];
//2.设置属性值
anim.keyPath = @"position.x";
anim.toValue = @; //动画完成时, 会自动删除动画
anim.removedOnCompletion = NO;
anim.fillMode = @"forwards"; //3.添加动画:key值是为了区分不同的动画
[self.redView.layer addAnimation:anim forKey:nil]; }
核心动画之作用在层上面.
动画的本质是改图层的某一个属性.
CABasicAnimation *anim = [CABasicAnimation animation];
图层有那些属性,这里才能写那些属性.
anim.keyPath = @"transform.scale";
anim.toValue = @0.5;
告诉动画完成的时候不要移除
anim.removedOnCompletion = NO;
保存动画最前面的效果.也就是最后一个设置的效果
anim.fillMode = kCAFillModeForwards;
把动画添加到层上面.
[_redView.layer addAnimation:anim forKey:nil];
二:心跳效果
#import "ViewController.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageV; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
} -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //创建动画对象
CABasicAnimation *anim = [CABasicAnimation animation]; //设置属性值
anim.keyPath = @"transform.scale";
anim.toValue = @; //设置动画执行次数
anim.repeatCount = MAXFLOAT; //设置动画执行时长
anim.duration = ; //自动反转(怎么样去 怎么样回来)
anim.autoreverses = YES; //添加动画
[self.imageV.layer addAnimation:anim forKey:nil]; } - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end
思路:就是让一张图片做一个放大缩放小的动画.
代码实现:
CABasicAnimation *anim =[CABasicAnimation animation];
设置缩放属性
anim.keyPath = @"transform.scale";
缩放到最小
anim.toValue = @0;
设置动画执行的次数
anim.repeatCount = MAXFLOAT;
设置动画执行的时长
anim.duration = 0.25;
设置动画自动反转(怎么去, 怎么回)
anim.autoreverses = YES;
添加动画
[self.heartView.layer addAnimation:anim forKey:nil];
最新文章
- java.lang.RuntimeException: Method setUp in android.test.ApplicationTestCase not mocked. See http://g.co/androidstudio/not-mocked for details.
- Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决)
- [转]Mac 科研常用软件
- 采用 PAT工具及CSP语言,对一个问题进行自动机 建模
- MyBatis多数据源配置(读写分离)
- 将linux下的rm命令改造成移动文件至回收站【转】
- Search for a Range [LeetCode]
- python学习之--自定义函数:
- Effective Java2读书笔记-类和接口(一)
- JVM必备指南(转)
- POJ 2505 A multiplication game(找规律博弈/贪心)
- 环境:win7+ie8 IE8的F12不起作用,原因如下:
- 阿里云学习之IOT物联网套件(客户端与服务端的后台数据传输)
- input输入限制,只允许输入数字和“.”,长度不得超过20
- 【BZOJ5503】[GXOI/GZOI2019]宝牌一大堆(动态规划)
- Java组合模式
- Java基于opencv实现图像数字识别(五)—投影法分割字符
- PAT A1010 Radix (25 分)——进制转换,二分法
- CSS font-family 各名称一览表
- java之httpClient 3.x、AsyncHttpClient1.9.x使用总结
热门文章
- 从USB闪存驱动器启动 Hiren的BootCD --制作U盘启动盘
- js38---门面模式
- File Upload with Jersey
- EPC-9600I-L开发板使用
- 使用Multiplayer Networking做一个简单的多人游戏例子-1/2(换一种方法)
- COGS 163 [USACO Mat07] 牛语
- Java Web学习总结(1)——JavaWeb开发入门
- 91.生成ini文件并写入和读取ini文件
- <;%%>;创建内联代码块(表达式)
- scrapy-加蘑菇代理