一、隐式动画属性

* 在前面几讲中已经提到。每个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root
Layer(根层)。

全部的非Root Layer。也就是手动创建的CALayer对象,都存在着隐式动画。

* 当对非Root Layer的部分属性进行对应的改动时,默认会自己主动产生一些动画效果,这些属性称为Animatable Properties(可动画属性)。

* 列举几个常见的Animatable Properties:

  • bounds:用于设置CALayer的宽度和高度。

    改动这个属性会产生缩放动画

  • backgroundColor:用于设置CALayer的背景色。

    改动这个属性会产生背景色的渐变动画

  • position:用于设置CALayer的位置。

    改动这个属性会产生平移动画

比方:假设一開始CALayer的position为(100, 100)。然后在某个时刻改动为(200, 200),那么整个CALayer就会在短时间内从(100, 100)这个位置平移到(200, 200)

* 我们也能够从官方文档中查询全部的Animatable Properties

1.点击Window -> Organizer

2.在搜索框输入"animatable"就可以

二、position和anchorPoint

* position和anchorPoint属性都是CGPoint类型的

* position能够用来设置CALayer在父层中的位置。它是以父层的左上角为坐标原点(0, 0)

* anchorPoint称为"定位点",它决定着CALayer身上的哪个点会在position属性所指的位置。它的x、y取值范围都是0~1。默认值为(0.5, 0.5)

1.创建一个CALayer,加入到控制器的view的layer中

 1 CALayer *myLayer = [CALayer layer];
2 // 设置层的宽度和高度(100x100)
3 myLayer.bounds = CGRectMake(0, 0, 100, 100);
4 // 设置层的位置
5 myLayer.position = CGPointMake(100, 100);
6 // 设置层的背景颜色:红色
7 myLayer.backgroundColor = [UIColor redColor].CGColor;
8
9 // 加入myLayer到控制器的view的layer中
10 [self.view.layer addSublayer:myLayer];

第5行设置了myLayer的position为(100, 100),又由于anchorPoint默认是(0.5, 0.5)。所以最后的效果是:myLayer的中点会在父层的(100, 100)位置

注意,蓝色线是我自己加上去的,方便大家理解,并非默认的显示效果。

两条蓝色线的宽度均为100。

2.若将anchorPoint改为(0, 0),myLayer的左上角会在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(0, 0);

3.若将anchorPoint改为(1, 1)。myLayer的右下角会在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(1, 1);

4.将anchorPoint改为(0, 1),myLayer的左下角会在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(0, 1);

我想,你应该已经明确anchorPoint的用途了吧,它决定着CALayer身上的哪个点会在position所指定的位置上。

它的x、y取值范围都是0~1,默认值为(0.5,
0.5)。因此,默认情况下,CALayer的中点会在position所指定的位置上。当anchorPoint为其它值时,以此类推。

CALayer3-层的属性的更多相关文章

  1. iOS开发UI篇—CAlayer层的属性

    iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...

  2. CAlayer层的属性

    iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...

  3. C#在数据层过滤属性中的主键

    C#使用泛型+反射做为数据层时,一个很都头疼的问题,如何让C#属性在程序里识别出哪个属性是主键,在拼接SQL时,不能把主键拼接到SQL语句里. 这个需要自定义一个属性.新建一个类文件,命名为Prosp ...

  4. iOS开发UI 篇—CAlayer层的属性

    一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设 ...

  5. CALayer层的属性(转)

    一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint  position:  (1)用来设置CALayer在父层中的 ...

  6. 蓝牙BLE: ATT协议层中属性(Attribute)

    ATT(Attribute Protocol)属性层是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式. 属性(Attribute)概念是ATT层的核心,ATT层定义了属性的内容, ...

  7. layer弹出层 layer源码

    下载源码:点击下载 ;!function(window, undefined){ "use strict"; var pathType = true, //是否采用自动获取绝对路径 ...

  8. position属性absolute与relative 详解

    最近一直在研究javascript脚本,熟悉DOM中CSS样式的各种定位属性,以前对这个属性不太了解,从网上找到两篇文章感觉讲得很透彻,收藏下来,唯恐忘记.一.解读absolute与relative ...

  9. [Cocos2d-x For WP8]Layer 层

        层(CCLayer) 从概念上说,层就是场景里的背景. CCLayer同样是CCNode的子类,通常用addChild方法添加子节点.CCLayer对象定义了可描绘的区域,定义了描绘的规则.C ...

  10. D3.js 用层画条形图

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

随机推荐

  1. windows下nginx+tomcat分布式集群部署

    首先官网下载  http://nginx.org/en/download.html,我的本地环境为 实现的架构: 从图上可以看出,nginx作为负载均衡请求分发器,当请求A应用时候,分发到A集群,同理 ...

  2. 常用笔记: 与VBS当中的Mid()类似的substr()小记

    VBS当中有Mid函数,一般形式为:Mid(str,start,len)   对应于JS就类似于:str.substr(start,len) 不过区别的是:VBS中start从1开始,而JS从0开始. ...

  3. Android Studio 解决方法No JVM installation found. Please install a 64-bit JDK.

    ————————— Error launching Android Studio ————————— No JVM installation found. Please install a 64-bi ...

  4. Nginx启动报错:10013: An attempt was made to access a socket in a way forbidden

    Nginx在win7,win2008下启动报错:bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket i ...

  5. 使用SWFUpload插件上传文件

    演示代码由两部分组成,包括前台文件和后台文件: 1.前台文件index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi ...

  6. MySQL学习系列一---命令行连接mysql和执行sql文件

    1.命令行连接mysql #mysql -h(主机) -u(用户名) -p (数据库名) mysql -hlocalhost -uroot -p testdb Enter password: **** ...

  7. nyoj 228 士兵杀敌(五)

    题目: http://acm.nyist.net/JudgeOnline/problem.php?pid=228 由于该题一开始是进行士兵军功增加,最后才是查找士兵的军功总和,使用一个数组,进行延迟更 ...

  8. 10个必备的移动UI设计资源站

    http://www.uisdc.com/10-necessary-mobile-ui-design-resources# 交互设计中如何增加趣味性.提升愉悦http://www.uisdc.com/ ...

  9. UIWindow 详解

    UIWindow对象是所有UIView的根视图,管理和协调的应用程序的显示.分发事件给View.UIWindow类是UIView的子类,可以看作是特殊的UIView.一般应用程序只有一个UIWindo ...

  10. SQL Server索引进阶:第七级,过滤的索引

    原文地址: Stairway to SQL Server Indexes: Level 7,Filtered Indexes 本文是SQL Server索引进阶系列(Stairway to SQL S ...