博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
核心动画——弹簧动画二
阅读量:6509 次
发布时间:2019-06-24

本文共 2090 字,大约阅读时间需要 6 分钟。

主要介绍弹簧动画的一些属性,下面介绍一下弹簧动画的另一种效果。

首先在Main.storyboard文件里面创建一个UIButton,ViewController继承于ViewController。将UIButton设置为一个属性,选中UIButton右击不放手拖到ViewController.m文件的@interface 里面并给它起名。同时,给它一个触发事件,将它拖到@implementation里面。具体操作看代码:

#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIButton *annimationButton;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    }- (IBAction)action:(id)sender {        UIButton *button = sender;    button.selected = !button.selected;    button.backgroundColor = button.selected != YES?[UIColor colorWithRed:1.000 green:0.435 blue:0.812 alpha:1.000]:[UIColor colorWithRed:0.400 green:0.800 blue:1.000 alpha:1.000];    [self jump];}- (void)jump{    CASpringAnimation *animation = [CASpringAnimation animationWithKeyPath:@"bounds"];    animation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, self.annimationButton.frame.size.width*1.5, self.annimationButton.frame.size.height*1.5)];    animation.mass = 2;    animation.stiffness = 100;    animation.damping = 3;    animation.initialVelocity = 30;    animation.duration = animation.settlingDuration;    [self.annimationButton.layer addAnimation:animation forKey:@"jump"]; }- (void)move:(CGPoint)toPoint{        CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"position"];    basicAnimation.toValue = [NSValue valueWithCGPoint:toPoint];    basicAnimation.duration = 3;    basicAnimation.removedOnCompletion = NO;    basicAnimation.fillMode = kCAFillModeBoth;    [self.annimationButton.layer addAnimation:basicAnimation forKey:@"move"];    }- (void)touchesBegan:(NSSet
*)touches withEvent:(UIEvent *)event{ [self move:[[touches anyObject] locationInView:self.view]]; NSLog(@"button改变位置之前的中心点x:%f y:%f",self.annimationButton.center.x,self.annimationButton.center.y); NSLog(@"button上面Layer的中心点x:%f y:%f",self.annimationButton.layer.position.x,self.annimationButton.layer.position.y); //CAAnimation 只是改变图层的动画效果,并没有真实的改变视图、图层的属性值 }@end

它的效果:

 

转载于:https://www.cnblogs.com/chengy134/p/5385588.html

你可能感兴趣的文章
微信小程序UI组件、开发框架、实用库
查看>>
正则表达式
查看>>
模块化Javascript代码的两种方式
查看>>
Money去哪了- 每日站立会议
查看>>
Python数据结构和算法学习笔记1
查看>>
正则之从dom字符串中提取url
查看>>
大数据——基础概念
查看>>
第六次上机实验
查看>>
机器学习温和指南
查看>>
解决Geoserver请求跨域的几种思路,第二种思路用过
查看>>
最短路-Bellman-Ford算法
查看>>
Object 类有哪些方法
查看>>
oracle 将一个表复制到另外一个表里 .
查看>>
libcurl以get方式请求服务器端文件
查看>>
复杂的数据类型3 - C++快速入门09
查看>>
OpenJudge 2786 Pell数列
查看>>
mysql 游标循环,嵌套游标循环
查看>>
css之自动换行
查看>>
swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解一下呗~
查看>>
win7 蛋疼的时间格式转化
查看>>