一、隐式动画属性

* 在前面几讲中已经提到。每个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为其它值时,以此类推。

转载于:https://www.cnblogs.com/bhlsheji/p/5230787.html

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. AE基础教程(21)——第21章 层的属性简介

    层的属性简介 以文本层为例: 新建合成--新建文本

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

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

  5. Storyboard更改layer层属性

    在某些时候会觉得使用Storyboard来实现一些简单界面的ViewController会相对容易.可是在Storyboard中,你会发现像layer层的属性都没办法修改,也就是说没办法添加边界,更改 ...

  6. DW中CSS属性详解

    作者:未知 来源:5D多媒体       在Dreamweaver的CSS样式里包含了W3C规范定义的所有CSS1的属性,Dreamweaver把这些属性分为Type(类型).Background(背 ...

  7. iOS开发CoreAnimation解读之四——Layer层动画内容

    iOS开发CoreAnimation解读之四--Layer层动画内容 一.引言 通过前几篇博客的介绍,我们可以了解到layer层可以设置许多与控件UI相关的属性,并且对于iOS开发,UIView层的属 ...

  8. binder-JAVA层机制

    根据之前分析过的cpp代码,以及编写了JAVA层的代码,笔者画了一个图进行了分层 JAVA中,RPC层的代码是直接通过aidl文件生成的,cpp部分是需要我们自己编写的 那么在JAVA中就存在两个问题 ...

  9. css不换行属性_CSS强制不换行的whitespace:nowrap的坑,你会填么?

    最近在忙着公司的小程序商城重构的项目 遇到怎么一个坑问题,多个商品左右横滑的排列展示的方式. 最终完成的效果我最一开始的想到的布局结构就如下图 设计稿有了,想法也有了就马上动手写!! 带着满怀信心的想 ...

  10. ios11,弹出层内的input框光标错位 键盘弹出时,输入信息,光标一直乱跳

    之前开发了一个微信项目,维护期中苹果手机突然出现光标错位现象,经过排查,发现是最新的ios11系统的锅. 具体情况:弹出层使用position: fixed:弹出层内附带input/textarea输 ...

最新文章

  1. 校招启动 | 2021 神策未来星全面启航,只差 1 个你!
  2. 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - C.奇妙的数字
  3. LQ训练营(C++)学习笔记_动态规划入门
  4. ofstream的使用方法--超级精细。C++文件写入、读出函数(转)
  5. 2018 ios开发者账号同意新协议加联系电话教程
  6. ffmpeg sws_scale函数详解
  7. C++函数返回局部变量
  8. STM32 存在字节对齐指针变量的地址都必须是4的倍数
  9. 学硕、全日制停招!研究生重大变革,来了
  10. java 中成员_Java中的成员内部类
  11. 上下求索——基于双向推理的多跳知识库问答技术
  12. sqlserver备份还原丢失dbo_编程实现备份和还原数据库_sqlserver
  13. Making a Kali Bootable USB Drive
  14. 台式计算机怎么安装无线网卡,台式机用无线网卡,小编教你台式机怎么用无线网卡...
  15. DirectX11 平面镜像的实现
  16. ROS入门教程(六)—— Gazebo仿真
  17. 下一代 TGW 从13Mpps到50Mpps性能优化之旅
  18. oracle使用小技巧,Oracle在linux下使用小技巧
  19. php引用复制,php引用和拷贝的区别
  20. 程序界的高手传奇(转)

热门文章

  1. iphone开热点电脑总是搜不到问题的解决办法(百试百灵)
  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)...
  3. 身为一个产品经理应该了解自己的本职
  4. 经典算法大全之河内之塔
  5. Spring 依赖注入(集合)/util命名空间/自动注入
  6. bash 别名_Linux的10个方便的Bash别名
  7. blui_BLUI:一种创建游戏UI的简单方法
  8. 如何在Linux上运行Windows软件?
  9. raspberry pi_如何使用Raspberry Pi设置个人Web服务器
  10. ubuntu 应用程序菜单_Ubuntu智能手机,塔式无人机飞行控制应用程序等