basicAnimation移动图形
目的:采用CABasicAnimation 点击屏幕上的点来是实现图像的位置移动 并且位置能够不反弹
难点:1 通过动画的KeyPath找到layer的属性
2 通过NSValue将点包装成对象 (下一点toValue的位置 对真正视图的改变)
包装的时候是【NSValue valueWithPoint】
取值的时候是【toValue CGPoint】;
注意点:当图像移动了 其实真正的涂层是没有移动的 要想让它真正的发生改变 一般在动画之后做一些具体的移动位置之类的操作
效果图:

具体实现代码
viewController.m
@interface ViewController ()
@property(nonatomic,strong)CALayer *subLayer;
@end
[super viewDidLoad];
//子层的设置 并加入到跟层中 _subLayer = [[CALayer alloc]init];
_subLayer.backgroundColor = [[UIColor redColor]CGColor];
_subLayer.bounds = CGRectMake(0, 0, 100, 100);
_subLayer.position = CGPointMake(100, 100);
_subLayer.cornerRadius = 50; [self.view.layer addSublayer:self.subLayer]; //创建一个手势
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)]; //设置几根手指点 点几次
tap.numberOfTouchesRequired = 1;
tap.numberOfTapsRequired = 1; //给view添加手势
[self.view addGestureRecognizer:tap ];
/*
基础动画关注的知识两个点 第一个点不设置的话就是当前点 有属性toValue表示下一点(目的点)
还有就是一定要记得给动画设置代理
*/
实现手势的代码:
-(void)tap:(UITapGestureRecognizer*)sender
{
/*找到点击点 然后将点击点设置成 动画的toValue*/
CGPoint location = [sender locationInView:self.view];
//创建动画 并设置其属性
CABasicAnimation *basic = [[CABasicAnimation alloc]init];
//动画时间 和 keyPath
basic.duration = 3.0f;
basic.keyPath = @"position"; //将下一点进行封装后 赋值给basic的下一点
NSValue *mytoValue = [NSValue valueWithCGPoint:location];
basic.toValue = mytoValue;
//设置能够呆在最后的位置不动
basic.removedOnCompletion = NO;
basic.fillMode = kCAFillModeForwards; //给动画添加代理(很重要)
basic.delegate = self; //将动画添加给subLayer
[self.subLayer addAnimation:basic forKey:@"basic"]; }
代理动画的方法:
-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
NSValue *toValue = ((CABasicAnimation*)anim).toValue;
self.subLayer.position = [toValue CGPointValue];
}
basicAnimation移动图形的更多相关文章
- 再谈CAAnimation动画
CAAnimaton动画分为CABasicAnimation & CAKeyframeAnimation CABasicAnimation动画, 顾名思义就是最基本的动画, 老规矩先上代码: ...
- 转载:iOS开发之让你的应用“动”起来
在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画 ...
- iOS开发系列--让你的应用“动”起来
--iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建 ...
- 基本动画CABasicAnimation - 完成之后闪回初始状态
基本动画CABasicAnimation 结束之后,默认闪回初始状态,那怎么解决呢? position需要设备两个属性: // MARK: - 结束后不要闪回去 anim.removedOnCompl ...
- iOS 动画组
其实早在一个多月以前就已经实现了动作组播放的功能,不过当时感觉好像没有什么难度并没有放在心上,今天突然要用到动画组,发现已经忘记了,所以又将原来的代码翻出来看了下.最后决定还是写下来,以备不时之需.动 ...
- MFC绘图(转载)
http://www.cppblog.com/bestcln/articles/83189.html 1 几何对象的结构和类 为了使用绘图函数,应该先了解绘图所用到的几种表示几何对象的结构和类.这些结 ...
- iOS进阶_动画的多种实现方式
一.UIView动画 //UIView动画有开始beginAnimation,有结束commitAnimation //第一步:开始UIView动画 [UIView beginAnimat ...
- iOS基本动画/关键帧动画/利用缓动函数实现物理动画效果
先说下基本动画部分 基本动画部分比较简单, 但能实现的动画效果也很局限 使用方法大致为: #1. 创建原始UI或者画面 #2. 创建CABasicAnimation实例, 并设置keypart/dur ...
- Facebook开源动画库 POP-POPBasicAnimation运用
动画在APP开发过程中还是经常出现,将花几天的时间对Facebook开源动画库 POP进行简单的学习:本文主要针对的是POPBasicAnimation运用:实例源代码已经上传至gitHub,地址:h ...
随机推荐
- android 通过eclipse混淆代码 打包 + proguard 总结
android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...
- ASP.NET MVC 后台接收集合参数和 jquery ajax 传值
MVC 接收参数数组(集合) 示例样本: public class Person { public string FirstName { get; set; } publi ...
- wcf托管在IIS上,提示未能加载
“/”应用程序中的服务器错误. 未能加载文件或程序集“ZBMYunCoreLib.DLL”或它的某一个依赖项.找不到指定的模块. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪 ...
- POJ1218
Problem C Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other) Total Su ...
- 适配器模式 java
结构模式:将类和对象结合在一起构成更大的结构,就像是搭积木. 1.适配器模式 源接口---适配器--目标接口 2.使用场景: 现在你有一个很古老的类,里面的一些方法很有用,你如何使用这些方法? 当然你 ...
- vijosP1071 新年趣事之打牌
vijosP1071 新年趣事之打牌 链接:https://vijos.org/p/1071 [思路] 01背包+路径输出. 用d[][]记录[][]可转移的数目,>=2则输出-1,0输出0,否 ...
- Reachability几个常用方法
http://oncerios.diandian.com/post/2013-06-28/40050041969
- Google表单
本博文的主要内容有 .Google表单的介绍 https://www.google.com/intl/zh-CN/forms/about/ 自行去注册Google账号,不多,赘述.
- Redis教程03——Redis 发布/订阅(Pub/Sub)
Pub/Sub 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者 ...
- 【设计模式 - 6】之桥接模式(Bridge)
1 模式简介 举个例子,人.车和公路是三个维度,人开着车在公路上行驶,就是将这三个维度进行了关联.人分男人(Man)和女人(Woman),车分小轿车(Car)和公共汽车(Bus),公路分市区 ...