码迷,mamicode.com
首页 > 其他好文 > 详细

(一二〇)CALayer的一些特性

时间:2017-08-04 19:30:00      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:控制器   sla   nts   rac   uicolor   控制   处理   orm   div   

1.每一个View都自带一个CALayer,称为rootLayer,layer能够和实现与View一样的显示功能,可是它不继承UIResponse,也就是说它无法处理事件,所以为了处理事件还是要用View,假设仅仅是显示,能够选择layer。

以下的代码实现了自己定义一个layer加入到控制器的rootLayer上,layer能够正常显示。

CALayer *layer = [CALayer layer];
layer.bounds = CGRectMake(0, 0, 200, 200);
layer.position = CGPointMake(200, 200);
layer.backgroundColor = [UIColor redColor].CGColor;
[self.view.layer addSublayer:layer];

须要注意的是,CALayer来自QuartzCore框架。是跨平台的,而UIColor、UIImage等来自UIKit框架,仅限于iOS系统使用,因此要设置背景、layer内容。一定要进行转换。

以下的代码实现了设置layer的内容为一张图片:


layer.contents = (__bridge id)[UIImage imageNamed:@"header.png"].CGImage;

2.Layer另一个锚点属性,能够设置postion的參考点,锚点分为x、y坐标。范围是0~1,(0,0)代表position从图片左上角開始计算(默认值),(0.5,0.5)则代表以图片中心点開始计算,这时候postion就相当于center属性,以此类推,通过锚点属性能够简化坐标运算。


3.Layer还具有隐式动画特性,所谓隐式动画,指的是假设UIView上有除rootLayer以外的layer,当那个layer的一些可运行动画的属性被改动时,会自己主动运行动画。比如transform。假设要消除隐式动画,须要通过提交事务的方式声明,以下的代码实现了对隐式动画的取消:

[CATransaction begin]; // 开启一个事务
[CATransaction setDisableActions:YES];
_layer.transform = CATransform3DMakeTranslation(100, 100, 0);
[CATransaction commit]; // 提交事务


(一二〇)CALayer的一些特性

标签:控制器   sla   nts   rac   uicolor   控制   处理   orm   div   

原文地址:http://www.cnblogs.com/gccbuaa/p/7286609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!