ca动画
//动画上下文
-(void)animationOfUIKit
{
UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
redView.backgroundColor=[UIColor redColor];
[self.view addSubview:redView];
//开始动画
[UIView beginAnimations:@"test" context:nil];
//动画时长
[UIView setAnimationDuration:1];
/*
*要进行动画设置的地方
*/
redView.backgroundColor=[UIColor blueColor];
redView.frame=CGRectMake(50, 50, 200, 200);
redView.alpha=0.5;
//动画结束
[UIView commitAnimations];
}
//通过代码块
-(void)animationOfBlock
{
//初始化一个View,用来显示动画
UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
redView.backgroundColor=[UIColor redColor];
[self.view addSubview:redView];
[UIView animateWithDuration:1 //时长
delay:0 //延迟时间
options:UIViewAnimationOptionCurveEaseInOut//动画效果
animations:^{
//动画设置区域
redView.backgroundColor=[UIColor blueColor];
redView.frame=CGRectMake(50, 50, 200, 200);
redView.alpha=0.5;
} completion:^(BOOL finish){
//动画结束时调用
//............
}];
}
//CA动画
- (void)animationOfCABasicAnimation
{
//创建一个CABasicAnimation对象
CABasicAnimation *animation=[CABasicAnimation animation];
//设置颜色
animation.toValue=(id)[UIColor blueColor].CGColor;
//动画时间
animation.duration=1;
//是否反转变为原来的属性值
animation.autoreverses=YES;
//把animation添加到图层的layer中,便可以播放动画了。forKey指定要应用此动画的属性
[self.view.layer addAnimation:animation forKey:@"backgroundColor"];
}
//
//关键帧动画CAKeyframeAnimation
- (void)animationOfCAKeyframeAnimation
{
CAKeyframeAnimation *animation=[CAKeyframeAnimation animation];
//设置属性值
animation.values=[NSArray arrayWithObjects:
// (id)self.view.backgroundColor,
(id)[UIColor yellowColor].CGColor,
(id)[UIColor greenColor].CGColor,
(id)[UIColor blueColor].CGColor,nil];
animation.duration=3;
animation.autoreverses=YES;
//把关键帧添加到layer中
[self.view.layer addAnimation:animation forKey:@"backgroundColor"];
}
//使用路径制作动画CAKeyframeAnimation
- (void)animationOfCAKeyframeAnimationPath
{
//初始化一个View,用来显示动画
UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 20, 20)];
redView.backgroundColor=[UIColor redColor];
[self.view addSubview:redView];
CAKeyframeAnimation *ani=[CAKeyframeAnimation animation];
//初始化路径
CGMutablePathRef aPath=CGPathCreateMutable();
//动画起始点
CGPathMoveToPoint(aPath, nil, 20, 20);
CGPathAddCurveToPoint(aPath, nil,
160, 30,//控制点
220, 220,//控制点
240, 380);//控制点
CGPathAddCurveToPoint(aPath, nil,
160, 30,//控制点
220, 220,//控制点
240, 380);//控制点
ani.path=aPath;
ani.duration=10;
//设置为渐出
ani.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
//自动旋转方向
ani.rotationMode=@"auto";
[redView.layer addAnimation:ani forKey:@"position"];
}
ca动画的更多相关文章
- iOS中 Animation 动画大全 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! iOS开发者交流QQ群: 446310206 1.iOS中我们能看到的控件都是UIView的子类,比如UIButt ...
- 【代码笔记】iOS-Transition动画
一,工程图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIVi ...
- iOS 动画效果:Core Animation & Facebook's pop
本文转载至 http://www.cocoachina.com/ios/20151223/14739.html 感谢原创作者分享 前言相信很多人对实现 iOS 中的动画效果都特别头疼,往往懒得动手,功 ...
- iOS之核心动画
.将动画的所有方法封装到一个类里面 MyCAHelper.h #import <Foundation/Foundation.h> #import <QuartzCore/Quartz ...
- iOS动画——CoreAnimation
CoreAnimation在我之前的UIKit动画里面简单的提了一句CoreAnimation动画,其实大家别看它类库名种有个animation,实际上animation在这个库中只占有很小的地位. ...
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- 史上最全的常用iOS的第三方框架
文章来源:http://blog.csdn.net/sky_2016/article/details/45502921 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片 ...
- 常用iOS的第三方框架
图像:1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等 ...
- iOS_第3方类库_BlurAlertView_GPUImage
最终效果图: 先加入GPUImage.framework 导入BlurAlertView的类声明和类实现 // // BlurAlertView.h // 特效弹出框 // // Created by ...
随机推荐
- [20191003]oracle number类型存储转化脚本.txt
[20191003]oracle number类型存储转化脚本.txt --//完善脚本,增加支持科学记数法.比如1e4之类的写法. 2.测试:$ cat test.txt012251234100-4 ...
- mysql操作数据表
目录 创建数据表 列约束 查看数据表结构 列类型(字段类型) 整型 浮点型 字符串 时间日期类型 Date Time Datetime Timestamp Year 枚举enum 修改表名 增加字段 ...
- vue阻止事件冒泡和默认事件
本文地址:https://www.cnblogs.com/guomin/p/9273862.html 原生js取消事件冒泡 try{ e.stopPropagation();//非IE浏览器 } ca ...
- 关于appium的简单理解
搭建好appium环境后,要学会定位app页面上的元素.下面是2款元素定位工具 uiautomatorviewer -- Android SDK自带的元素定位工具,由Google开发的 Inspe ...
- luoguP4585 [FJOI2015]火星商店问题
题意 显然商店编号的限制能用可持久化trie解决. 特殊的商品预先判掉就好了,现在只考虑普通的商品. 发现商品的时间是单点,询问时一段时间,于是将询问区间在线段树上拆成\(log\)个区间,分别放上该 ...
- thinkphp6报错Driver [Think] not supported.
解决方法 composer require topthink/think-view
- vue项目搭建介绍02
目录 vue项目搭建介绍02 python-pycharm设置: vue创建项目分类: vue-cli构建 自定义构建 基础的vue项目目录: vue项目搭建介绍02 python-pycharm设置 ...
- Java连载8-基本数据类型2
一.基本数据类型 1.字符串“abc”不属于基本数据类型,属于引用数据类型 2. 基本数据类型 占用空间大小(单位:字节) byte 1 short ...
- SpringMVC+ajax文件上传实例教程
原文地址:https://blog.csdn.net/weixin_41092717/article/details/81080152 文件上传文件上传是项目开发中最常见的功能.为了能上传文件,必须将 ...
- 第二十一节:Asp.Net Core MVC和WebApi路由规则的总结和对比
一. Core Mvc 1.传统路由 Core MVC中,默认会在 Startup类→Configure方法→UseMvc方法中,会有默认路由:routes.MapRoute("defaul ...