CALayer3-层的属性
一、隐式动画属性
* 在前面几讲中已经提到。每个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-层的属性相关推荐
- [分享]iOS开发-UI篇:CAlayer层的属性
iOS开发UI篇-CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- CAlayer层的属性
iOS开发UI篇-CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- AE基础教程(21)——第21章 层的属性简介
层的属性简介 以文本层为例: 新建合成--新建文本
- iOS开发UI 篇—CAlayer层的属性
一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设 ...
- Storyboard更改layer层属性
在某些时候会觉得使用Storyboard来实现一些简单界面的ViewController会相对容易.可是在Storyboard中,你会发现像layer层的属性都没办法修改,也就是说没办法添加边界,更改 ...
- DW中CSS属性详解
作者:未知 来源:5D多媒体 在Dreamweaver的CSS样式里包含了W3C规范定义的所有CSS1的属性,Dreamweaver把这些属性分为Type(类型).Background(背 ...
- iOS开发CoreAnimation解读之四——Layer层动画内容
iOS开发CoreAnimation解读之四--Layer层动画内容 一.引言 通过前几篇博客的介绍,我们可以了解到layer层可以设置许多与控件UI相关的属性,并且对于iOS开发,UIView层的属 ...
- binder-JAVA层机制
根据之前分析过的cpp代码,以及编写了JAVA层的代码,笔者画了一个图进行了分层 JAVA中,RPC层的代码是直接通过aidl文件生成的,cpp部分是需要我们自己编写的 那么在JAVA中就存在两个问题 ...
- css不换行属性_CSS强制不换行的whitespace:nowrap的坑,你会填么?
最近在忙着公司的小程序商城重构的项目 遇到怎么一个坑问题,多个商品左右横滑的排列展示的方式. 最终完成的效果我最一开始的想到的布局结构就如下图 设计稿有了,想法也有了就马上动手写!! 带着满怀信心的想 ...
- ios11,弹出层内的input框光标错位 键盘弹出时,输入信息,光标一直乱跳
之前开发了一个微信项目,维护期中苹果手机突然出现光标错位现象,经过排查,发现是最新的ios11系统的锅. 具体情况:弹出层使用position: fixed:弹出层内附带input/textarea输 ...
最新文章
- 校招启动 | 2021 神策未来星全面启航,只差 1 个你!
- 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - C.奇妙的数字
- LQ训练营(C++)学习笔记_动态规划入门
- ofstream的使用方法--超级精细。C++文件写入、读出函数(转)
- 2018 ios开发者账号同意新协议加联系电话教程
- ffmpeg sws_scale函数详解
- C++函数返回局部变量
- STM32 存在字节对齐指针变量的地址都必须是4的倍数
- 学硕、全日制停招!研究生重大变革,来了
- java 中成员_Java中的成员内部类
- 上下求索——基于双向推理的多跳知识库问答技术
- sqlserver备份还原丢失dbo_编程实现备份和还原数据库_sqlserver
- Making a Kali Bootable USB Drive
- 台式计算机怎么安装无线网卡,台式机用无线网卡,小编教你台式机怎么用无线网卡...
- DirectX11 平面镜像的实现
- ROS入门教程(六)—— Gazebo仿真
- 下一代 TGW 从13Mpps到50Mpps性能优化之旅
- oracle使用小技巧,Oracle在linux下使用小技巧
- php引用复制,php引用和拷贝的区别
- 程序界的高手传奇(转)
热门文章
- iphone开热点电脑总是搜不到问题的解决办法(百试百灵)
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(17)-注册用户功能的细节处理(各种验证)...
- 身为一个产品经理应该了解自己的本职
- 经典算法大全之河内之塔
- Spring 依赖注入(集合)/util命名空间/自动注入
- bash 别名_Linux的10个方便的Bash别名
- blui_BLUI:一种创建游戏UI的简单方法
- 如何在Linux上运行Windows软件?
- raspberry pi_如何使用Raspberry Pi设置个人Web服务器
- ubuntu 应用程序菜单_Ubuntu智能手机,塔式无人机飞行控制应用程序等