IOS--CALayer的介绍及使用技巧
2019独角兽企业重金招聘Python工程师标准>>>
首先对CALayer进行简单的介绍:
1.在UIView中,CALayer只是一个类的声明,因此需要添加 QuartzCore框架
2.UIKit框架只能应用到ios中,但是Quartz2D是跨平台的,因此在使用颜色时应该将UIColor转换成CGColor
3.修改图层相当于修改了UIView属性,即修改了界面属性
4.形变属性既可以使用形变函数制定,也可以使用keypath制定
创建imageView并设置边框属性(基础)
1.bounds:宽度和高度,x y设置为0;
2.position:位置(默认指中心点,具体由anchorPoint决定)
3.anchorPoint:锚点,(x,y的范围都是0~1),决定了position的含义
4.backgroundColor:背景颜色(CGColorRef 类型)
5.borderColor:边框颜色
6.borderWidth:边框宽度
7.borderRadius:圆角半径
8.contents:内容
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(90, 90, 90, 90)];imgView.backgroundColor = [UIColor redColor];imgView.image = [UIImage imageNamed:@"1.jpg"];[self.view addSubview:imgView];//1.获取layer设置边框imgView.layer.borderWidth = 1;imgView.layer.borderColor = [UIColor darkGrayColor].CGColor;// 2.设置弧度imgView.layer.cornerRadius = 45;imgView.layer.masksToBounds = YES;imgView.clipsToBounds = YES;//3.设置阴影//如果设置imgView.layer.masksToBounds = YES; 则不会出现阴影imgView.layer.shadowColor = [UIColor redColor].CGColor;imgView.layer.shadowOffset = CGSizeMake(5, 5);imgView.layer.shadowOpacity = 0.5;//对imgView的layer层的transform 属性进行操作(第一种方法)//平移imgView.layer.transform = CATransform3DMakeTranslation(0, 200, 0);//旋转imgView.layer.transform = CATransform3DMakeRotation(M_PI_4, 1, 0, 0);//缩放imgView.layer.transform = CATransform3DMakeScale(2, 2, 1);//对imgView的layer层的transform 属性进行操作(第二种方法)通过kvc的方法//平移[imgView.layer setValue:@100 forKeyPath:@"transform.translation.x"];//旋转[imgView.layer setValue:@M_PI_2 forKeyPath:@"transform.rotation.z"];//缩放[imgView.layer setValue:@0.5 forKeyPath:@"transform.scale.x"];
CALayer的基本属性
//创建图层CALayer *subLayer = [[CALayer alloc] init];//将图层添加到view的根图层上[self.view.layer addSublayer:subLayer];//----------常用的属性----------//设置图层的大小subLayer.bounds = CGRectMake(0, 0, 200, 200);//设置图层的显示位置subLayer.position = CGPointMake(100, 100);//设置背景颜色subLayer.backgroundColor = [UIColor redColor].CGColor;//设置锚点//决定了position的含义,x和y的范围是0~1subLayer.anchorPoint = CGPointMake(0.5, 0.5);//设置图层显示的内容UIImage *img = [UIImage imageNamed:@"1.jpg"];subLayer.contents = (id)img.CGImage;
CALayer中的隐式动画(隐式动画的默认时间为0.25秒)
每一个UIView内部都默认关联着一个CALayer,称这个layer为Root Layer;
所有的非Root Layer都存在着隐式动画,默认时长为1/4秒
bounds:缩放动画
position:平移动画
opacity:淡入淡出的动画(改变透明度)
更多的隐式动画属性可在文档中搜索
使用CALayer绘图,会调用自己的drawRect方法
//点击界面触触发的方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {//隐式动画的时间:0.25秒//如果不想存在动画//关闭动画
// [CATransaction begin];
// [CATransaction setDisableActions:YES];//取得点击的坐标UITouch *touch = [touches anyObject];CGPoint point = [touch locationInView:self.view];//1.修改layer的位置_layer.position = point;//2、改变layer的大小CGFloat num = arc4random_uniform(50) + 30;_layer.bounds = CGRectMake(0, 0, num, num);//3、修改layer的透明度_layer.opacity = arc4random_uniform(10)*0.1;//4、背景颜色_layer.backgroundColor = [UIColor colorWithRed:arc4random_uniform(10)*0.1 green:arc4random_uniform(10)*0.1 blue:arc4random_uniform(10)*0.1 alpha:1].CGColor;//5、设置边框的弧度_layer.cornerRadius = arc4random_uniform(20);//6、transform_layer.transform = CATransform3DMakeScale(2, 1, 1);//提交[CATransaction commit];}
转载于:https://my.oschina.net/zhangqy/blog/507833
IOS--CALayer的介绍及使用技巧相关推荐
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- ios学习--iphone开发笔记和技巧总结(原址持续更新)
ios学习--iphone开发笔记和技巧总结(原址持续更新) 分类: ios Object-C2012-04-18 10:16 2716人阅读 评论(1) 收藏 举报 uiviewiphonelist ...
- iOS Simulator功能介绍关于Xamarin IOS开发
iOS Simulator功能介绍关于Xamarin IOS开发 iOS Simulator功能介绍 在图1.38所示的运行效果中,所见到的类似于手机的模型就是iOS Simulator.在没有iPh ...
- iOS故障排除指南:基本技巧
[2013年1月16日 51CTO外电头条]本文为<iOS故障排除指南:基本技巧>.在iOS程序的数组中的三个对象莫名其妙成了五个.新开发成员的加入令游戏性不升反降:熟悉应用开发的各位朋友 ...
- iOS开发学无止境 - 6个iOS图片文本设计的小技巧
英文:TOPE 作者:星夜暮晨 网址:http://www.jianshu.com/p/88263196fdf0 设计师们似乎拥有着我们这些开发者所没有的"魔力",他们知道如何让一 ...
- Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
[整理]Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得 2012-12-12 10:45:40| 分类: Apple|字号 订阅 原文链接: http://www.crif ...
- IOS CALayer的属性和使用
一.CALayer的常用属性 1.@propertyCGPoint position; 图层中心点的位置,类似与UIView的center:用来设置CALayer在父层中的位置:以父层的左上角为原点 ...
- iOS开发系列--让你的应用“动”起来--超详细的ios核心动画介绍
概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...
- iOS 开源项目介绍之UI篇
本文介绍一些UI方面的开源项目,大家可以结合自己的需求选择合适的开源库进行使用和学习.大家也可以关注我的公众号阅读此文章. ...
最新文章
- 四步相移法怎么获得相位信息_涨知识!5G的调制方式,到底是怎么实现的?
- 【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)
- Linux只列出目录的几种方式
- 【新功能,新插件】-全新来袭,CSDN浏览器助手这一款无广告干净界面插件你值得拥有!
- springboot使用EntityManager执行自定义SQL
- streak10刷Linux,streak 10
- django-orm-查询基本操作
- linux 解压安卓内核,解压内核镜像
- 工具使用-----Jmeter-脚本的录制
- yabailv 运放_压摆率——限制了运放的速度
- 调色板的原理与显示模式
- 如何将ai转换为html,如何用AI输出html网页?AI画的图片-存储为web及所有格式-放到网页有锯齿?...
- vant框架cdn使用方式的简短案例
- 2017web前端校招面试总结 - 陌陌技术保障组
- 达内学软件测试发证书吗,达内软件测试培训让我拥有了实际工作经验
- cocoscreator初学笔记001
- TI 达芬奇系列 开发错误解析
- 苹果频率测试软件gen,【技术干货】进行精准的PCIe 4.0时钟抖动测量
- 企业常见的数据泄露点梳理
- 一位工作8年程序员的成长感悟,值得深思