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的介绍及使用技巧相关推荐

  1. iOS开发之Xcode常用调试技巧总结

    转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...

  2. ios学习--iphone开发笔记和技巧总结(原址持续更新)

    ios学习--iphone开发笔记和技巧总结(原址持续更新) 分类: ios Object-C2012-04-18 10:16 2716人阅读 评论(1) 收藏 举报 uiviewiphonelist ...

  3. iOS Simulator功能介绍关于Xamarin IOS开发

    iOS Simulator功能介绍关于Xamarin IOS开发 iOS Simulator功能介绍 在图1.38所示的运行效果中,所见到的类似于手机的模型就是iOS Simulator.在没有iPh ...

  4. iOS故障排除指南:基本技巧

    [2013年1月16日 51CTO外电头条]本文为<iOS故障排除指南:基本技巧>.在iOS程序的数组中的三个对象莫名其妙成了五个.新开发成员的加入令游戏性不升反降:熟悉应用开发的各位朋友 ...

  5. iOS开发学无止境 - 6个iOS图片文本设计的小技巧

    英文:TOPE 作者:星夜暮晨 网址:http://www.jianshu.com/p/88263196fdf0 设计师们似乎拥有着我们这些开发者所没有的"魔力",他们知道如何让一 ...

  6. Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得

    [整理]Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得 2012-12-12 10:45:40|  分类: Apple|字号 订阅 原文链接: http://www.crif ...

  7. IOS CALayer的属性和使用

    一.CALayer的常用属性 1.@propertyCGPoint position;  图层中心点的位置,类似与UIView的center:用来设置CALayer在父层中的位置:以父层的左上角为原点 ...

  8. iOS开发系列--让你的应用“动”起来--超详细的ios核心动画介绍

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

  9. iOS 开源项目介绍之UI篇

    本文介绍一些UI方面的开源项目,大家可以结合自己的需求选择合适的开源库进行使用和学习.大家也可以关注我的公众号阅读此文章.                                       ...

最新文章

  1. 四步相移法怎么获得相位信息_涨知识!5G的调制方式,到底是怎么实现的?
  2. 【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)
  3. Linux只列出目录的几种方式
  4. 【新功能,新插件】-全新来袭,CSDN浏览器助手这一款无广告干净界面插件你值得拥有!
  5. springboot使用EntityManager执行自定义SQL
  6. streak10刷Linux,streak 10
  7. django-orm-查询基本操作
  8. linux 解压安卓内核,解压内核镜像
  9. 工具使用-----Jmeter-脚本的录制
  10. yabailv 运放_压摆率——限制了运放的速度
  11. 调色板的原理与显示模式
  12. 如何将ai转换为html,如何用AI输出html网页?AI画的图片-存储为web及所有格式-放到网页有锯齿?...
  13. vant框架cdn使用方式的简短案例
  14. 2017web前端校招面试总结 - 陌陌技术保障组
  15. 达内学软件测试发证书吗,达内软件测试培训让我拥有了实际工作经验
  16. cocoscreator初学笔记001
  17. TI 达芬奇系列 开发错误解析
  18. 苹果频率测试软件gen,【技术干货】进行精准的PCIe 4.0时钟抖动测量
  19. 企业常见的数据泄露点梳理
  20. 一位工作8年程序员的成长感悟,值得深思

热门文章

  1. C语言:16进制字符串转int
  2. 进厂打工的大学生:每天站12个小时,4年存50万
  3. 终于有人把可解释机器学习讲明白了
  4. 什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了
  5. 朱啸虎:几百亿资金今年注入小程序,你能抓住机会吗?
  6. Swagger 官方 Starter 配上这个增强方案是真的香!
  7. 程序员造轮子的正确姿势
  8. 2019沙雕失误瞬间!哈哈哈哈笑出猪叫...
  9. 国内最缺的架构实践,DDD领域驱动设计排第一!
  10. 二本非科班30岁转行架构师的老徐:站在巨人的肩膀学习才是捷径