layer 的常用属性

layer的各种属性代码示例:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
// 设置图片为圆角 (self.qweImageView.frame.size.width / 2 变成圆形)
self.imageView.layer.cornerRadius = self.imageView.frame.size.width / ;
// self.imageView.layer.masksToBounds = YES;
// 注意:光设置上边一句代码是实现不了效果的(下边的maskToBounds这个属性影响layer层的阴影效果)
// 设置layer的阴影颜色
self.imageView.layer.shadowColor = [UIColor blueColor].CGColor;
// 设置layer的透明度
self.imageView.layer.shadowOpacity = 0.5f;
// 设置阴影偏移量
self.imageView.layer.shadowOffset = CGSizeMake(-, );
// 设置阴影的模糊度
self.imageView.layer.shadowRadius = ;
// 创建View
UIView *myView = [[UIView alloc] init];
myView.backgroundColor = [UIColor redColor];
// 设置frame
myView.frame = CGRectMake(, , , );
// 设置视图圆角 (self.qweImageView.frame.size.width / 2 如果是方形视图变成圆形)
myView.layer.cornerRadius = myView.frame.size.width / ;
// 设置阴影颜色
myView.layer.shadowColor = [UIColor lightGrayColor].CGColor;
// 设置阴影偏移量
myView.layer.shadowOffset = CGSizeMake(, );
// 设置阴影的透明度
myView.layer.shadowOpacity = 0.8f;
// 设置阴影的模糊度
myView.layer.shadowRadius = ;
// 添加到View上
[self.view addSubview:myView];
[self customLayer];
}
- (void)customLayer {
// 创建一个layer对象
CALayer *layer = [CALayer layer];
// 设置对象的位置和大小
layer.frame = CGRectMake(, , , );
// 设置背景颜色
layer.backgroundColor = [UIColor redColor].CGColor;
// 设置锚点
// layer.anchorPoint = CGPointMake(0, 0);
// 设置大小
layer.position = CGPointMake(, );
// layer需要添加到layer层
[self.view.layer addSublayer:layer];
}
#pragma mark - CABasicAnimation
- (IBAction)CABasicAnimation:(id)sender { // 第一步:创建动画对象
CABasicAnimation *basicAnimation = [CABasicAnimation animation];
// 第二步:告诉layer层需要执行什么样的动画(后边设置的内容为CALayer的相关属性)
basicAnimation.keyPath = @"position"; // position 改变位置的
// 第三步:告诉layer从哪里来,到哪里去
basicAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(, )];
basicAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(, )];
// 注意点: 如果要实现图片不会到原来点,需要以下两句代码
basicAnimation.removedOnCompletion = NO;
// 设置保存动画状态的内容
basicAnimation.fillMode = kCAFillModeForwards; // 第四步:设置动画持续的时长
basicAnimation.duration = 6.0f;
// 第五步:将要执行的动画添加到calayer上
[self.imageView.layer addAnimation:basicAnimation forKey:@"basic"];
// *************翻转效果
CABasicAnimation *basic = [CABasicAnimation animation];
basic.keyPath = @"transform";
// 设置翻转的地方
basic.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, , , )];
basic.duration = 0.2f;
[self.imageView.layer addAnimation:basic forKey:@"aaaa"];
// 根据key去移除动画
// [self.imageView.layer removeAnimationForKey:@"basic"];
} #pragma mark - CAKeyframeAnimation
- (IBAction)CAKeyAnimation:(id)sender {
// 第一步:创建对象
CAKeyframeAnimation *keyAnimation = [CAKeyframeAnimation animation];
// 第二步:设置动画轨迹
keyAnimation.keyPath = @"transform.rotation";
// 第三步:设置翻转的角度 (弧度计算公式:度数/180*M_PI)
keyAnimation.values = @[@(- / 180.0 * M_PI), @( / 180.0 * M_PI), @(- / 180.0 * M_PI)];
// 第四步:设置时长
keyAnimation.duration = 15.0f;
// 第五步:添加动画到layer层
[self.view.layer addAnimation:keyAnimation forKey:@"bbbb"];
} #pragma mark - CAAnimationGroup
- (IBAction)CAAnimationGroup:(id)sender {
// 平移动画
CABasicAnimation *basic1 = [CABasicAnimation animation];
basic1.keyPath = @"transform.translation.y"; // 按照y轴平移
basic1.toValue = @();
// 缩小动画
CABasicAnimation *basic2 = [CABasicAnimation animation];
basic2.keyPath = @"transform.scale"; // 缩小
basic2.toValue = @(0.3);
// 旋转动画
CABasicAnimation *basic3 = [CABasicAnimation animation];
basic3.keyPath = @"transform.rotation"; // 旋转
basic3.toValue = @(M_PI); // 需要创建管理各个动画的动画组
CAAnimationGroup *group = [CAAnimationGroup animation];
group.animations = @[basic1,basic2,basic3];
// group 会自动分配时间
group.duration = 5.0f; [self.imageView.layer addAnimation:group forKey:@"ccccc"];
} #pragma mark - CASpring
- (IBAction)CASpring:(id)sender {
// 设置对象
CASpringAnimation *spring = [CASpringAnimation animation];
spring.keyPath = @"transform.scale";
spring.fromValue = @;
spring.toValue = @0.2;
spring.duration = 3.0f; [self.imageView.layer addAnimation:spring forKey:@"ddddd"];
}
layer 的常用属性的更多相关文章
- ios基础篇(四)——UILabel的常用属性及方法
UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...
- UIView之常用属性
UIView之常用属性 1. view.tag = 200; // 系统保留0-1002. view.frame = CGRectMake(20, 30, 300, 300);3. view.cent ...
- UIView的一些常用属性和方法
UIView的一些常用属性和方法 1. UIView的属性 UIView继承自UIResponder,拥有touches方法. - (instancetype)initWithFrame:(CGRec ...
- web 开发:CSS3 常用属性——速查手册!
web 开发:CSS3 常用属性——速查手册! CSS3 简介:http://www.runoob.com/css3/css3-intro.html 1.目录 http://caniuse.com/ ...
- UIView常用属性与方法/UIKit继承结构
UIView常用属性与方法 @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDy ...
- 【Android自学日记】五大布局常用属性
线性布局(LinearLayout)常用属性: android:orientation="vertical"--决定子类控件的排布方式(vertical垂直:horizontal水 ...
- DataGrid中的常用属性
DataGrid中的常用属性 $('#dg').datagrid({ url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',w ...
- Node.js process 模块常用属性和方法
Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...
- ImageView的常用属性
ImageView的一些常用属性,并且这些属性都有与之对应的getter.setter方法: android:adjustViewBounds:设置ImageView是否调整自己的边界来保持所显示图片 ...
随机推荐
- 微信jsapi支付的坑
1.显示 redirect_uri 参数错误 因为手机支付是需要微信授权的,所以检查配置授权域名地址是否正确填写(登陆微信公众平台,地址:https://mp.weixin.qq.com/cgi-b ...
- 关于ue上传图片到七牛云设置key
多图上传设置key: dialogs文件下面,image文件下面的image.html,链接webuploader.js,不链接webuploader.min.js webuploader.js里面 ...
- 汉字转拼音的vc++程序源代码
#include "StdAfx.h" #include "MyChiToLetter.h" // Download by http://www.codefan ...
- video标签 拖动 转自w3school
调整视频大小 播放 暂停 用js实现 详细参见http://www.w3school.com.cn/tiy/t.asp?f=html5_video_dom 图片的拖动详见http://www.w3sc ...
- Ubuntu 12.04中文输入法的安装(转)
Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等.其中Scim和Ibus是输入法框架. 在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+S ...
- [转] tomcat组成及工作原理
1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet containe ...
- ThinkPHP 3.1.2 视图-1
一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件 [index].html(.tpl) 更换模板文 ...
- hdoj 2544 最短路(最短路+Dijkstrea算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路分析:该问题给定一个无向图,要求求从起始点到终点的最短路径长度:可以使用dijkstra算法 ...
- Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED
Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED Xvfb+YSlow+ShowSlow搭建前端性能测试框架 作者:黑三 | 时间:2010-07-07 ...
- 使用mongodb存取lbs数据
1,在mongodb中创建lbs_db数据库,collection名称lbs_info,要使用lbs查询功能,需要对二维数据列建立索引 db.lbs_info.ensureIndex( { locs ...