(一二〇)CALayer的一些特性
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的一些特性的更多相关文章
- 2017年3月14日-----------乱码新手自学.net 之Authorize特性与Forms身份验证(登陆验证、授权小实例)
有段时间没写博客了,最近工作比较忙,能敲代码的时间也不多. 我一直有一个想法,想给单位免费做点小软件,一切思路都想好了,但是卡在一个非常基础的问题上:登陆与授权. 为此,我看了很多关于微软提供的Ide ...
- 少儿编程|Scratch编程教程系列合集,总有一款适合你
如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲 ...
- UIView CALayer 的区别
UIView与CALayer的区别,很详细 研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不 ...
- UIView与CALayer的区别
1.UIView相比CALayer最大区别是UIView可以响应用户事件,而CALayer不可以.UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制. 2.UIView和CALaye ...
- CALayer总结(二)
1.CATransaction 事务: UIView有两个方法,+beginAnimations:context:和+commitAnimations,和CATransaction的+begin 和+ ...
- iOS开发——UI篇OC篇&UIView/UIWindow/UIScreen/CALayer
UIView/UIWindow/UIScreen/CALayer 1.UIScreen可以获取设备屏幕的大小. 1 2 3 4 5 6 7 // 整个屏幕的大小 {{0, 0}, {320, 480} ...
- UIView与CALayer的区别,很详细
研 究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人, ...
- UIView和CALayer有什么关系
view是对layer的一种封装,你对view的很多操作事实上是对layer的操作,之所以会出现这两个东西是因为1.view支持很多手势的交互,你所操作iphone的各种点击,拖动等等.2.layer ...
- 【好程序员笔记分享】——UIView与CALayer详解
-iOS培训,iOS学习-------型技术博客.期待与您交流!------------ UIView与CALayer详解 研究Core Animation已经有段时间了,关于Core Animati ...
随机推荐
- 【BZOJ4033】【HAOI2015】树上染色
Description 有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会 ...
- codeforces round #419 C. Karen and Game
C. Karen and Game time limit per test 2 seconds memory limit per test 512 megabytes input standard i ...
- Begin again
新的一周开始. 写下这篇东西, 用来表明我还在奋斗的路上, 那么,加油咯.
- [Spoj]Counting Divisors (cube)
来自FallDream的博客,未经允许,请勿转载,谢谢. 设d(x)表示x的约数个数,求$\sum_{i=1}^{n}d(i^{3})$ There are 5 Input files. - Inpu ...
- 如何在Google上下载高清原图
在我们学习和生活中常常一些高清图片作为相关的素材,比如制作PPT.写博文.制作视频都需要大量图片.我们常常会在百度上下载一些图片,但是百度上提供的图片存在很多问题:存在水印.清晰度不够等.而Googl ...
- C语言程序第一次作业
(一)实验总结 1. 求圆面积和周长 (1)题目 输入圆的半径,计算圆的周长和面积. (2)流程图 (3)测试数据及运行结果 测试数据1:r=2 运行结果: (4)实验分析 没有问题 2.判断闰年 ( ...
- C#中Fun简单介绍及运用到项目中与缓存(本地缓存,Redis)结合使用
1.简单介绍Fun C#中Fun和Action有点类似,都是一个委托方法,不同的是Func是有返回值的,而Action没有. (T)此委托封装的方法的参数类型. 备注:详情了解Fun到(https: ...
- JSON.NET的Self referencing loop detected with type的原因以及解决办法
模型中有循环引用是很常见的.例如,以下模型显示双向导航属性: : public class Category : { : public Category() : { : Products = new ...
- Struts+Hibernate+jsp页面,实现分页
dao层代码 package com.hanqi.dao; import java.util.ArrayList; import java.util.List; import org.hibernat ...
- Java transient关键字使用小结
1.transient关键字只能修饰变量,而不能修饰方法和类.注意,本地变量是不能被transient关键字修饰的.2.被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被t ...