iOS:CALayer锚点的使用
CALayer层的位置主要和position和anchorPoint有关。其中它们在一起才能决定层在视图中的具体位置。
@property CGPoint position; //位置
@property CGPoint anchorPoint; //锚点
锚点的范围:(0.0~1.0)
具体的演示如下:
1、采用默认的锚点(0.5,0.5)
- (void)viewDidLoad {
[super viewDidLoad];
//添加子层
CALayer *subLayer = [[CALayer alloc]init];
//层的大小用bounds设置
subLayer.bounds = CGRectMake(, , , );
subLayer.backgroundColor = [[UIColor redColor]CGColor];
//层的位置是靠position和anchorPoint共同确定的
subLayer.position = CGPointMake(, );
[self.view.layer addSublayer:subLayer];
}
演示结果:anchorPoint锚点在红色矩形的中心处

2、采用自定义的锚点(0.0,0.0)
- (void)viewDidLoad {
[super viewDidLoad];
//添加子层
CALayer *subLayer = [[CALayer alloc]init];
//层的大小用bounds设置
subLayer.bounds = CGRectMake(, , , );
subLayer.backgroundColor = [[UIColor redColor]CGColor];
//层的位置是靠position和anchorPoint共同确定的
subLayer.position = CGPointMake(, );
//默认的锚点(0.5,0.5)
//subLayer.anchorPoint = CGPointMake(0, 0);
[self.view.layer addSublayer:subLayer];
}
演示结果:anchorPoint锚点在红色矩形的左上角转角这一点处

3、采用自定义的锚点(0.0,0.5)
- (void)viewDidLoad {
[super viewDidLoad];
//添加子层
CALayer *subLayer = [[CALayer alloc]init];
//层的大小用bounds设置
subLayer.bounds = CGRectMake(, , , );
subLayer.backgroundColor = [[UIColor redColor]CGColor];
//层的位置是靠position和anchorPoint共同确定的
subLayer.position = CGPointMake(, );
//默认的锚点(0.5,0.5)
subLayer.anchorPoint = CGPointMake(, 0.5);
[self.view.layer addSublayer:subLayer];
}
演示结果:anchorPoint锚点在红色矩形的上面一条边的中心处

4、采用自定义的锚点(0.5,0.0)
- (void)viewDidLoad {
[super viewDidLoad];
//添加子层
CALayer *subLayer = [[CALayer alloc]init];
//层的大小用bounds设置
subLayer.bounds = CGRectMake(, , , );
subLayer.backgroundColor = [[UIColor redColor]CGColor];
//层的位置是靠position和anchorPoint共同确定的
subLayer.position = CGPointMake(, );
//默认的锚点(0.5,0.5)
subLayer.anchorPoint = CGPointMake(0.5, );
[self.view.layer addSublayer:subLayer];
}
演示结果:anchorPoint锚点在红色矩形的左边一条边的中心处

总结:
可以看出,层的位置光凭position是无法确定的,每一次anchorPoint锚点的不同,层的位置也就发生的了改变。所以,层的位置是有position和anchorPoint锚点共同决定的。
iOS:CALayer锚点的使用的更多相关文章
- 变换CALayer锚点实现模拟时钟的动画
变换CALayer锚点实现模拟时钟的动画 变换锚点得需要一点理论知识,看下图就能明白:). https://developer.apple.com/library/ios/documentation/ ...
- IOS第18天(4,核心动画,时钟效果,定时器,图片旋转角度,CALayer 锚点,获取当前,小时,秒,分)
**** #import "HMViewController.h" // 每秒秒针转6度 #define perSecendA 6 // 每分钟分针转6度 #define perM ...
- iOS CALayer应用详解
跟着大神一起进步,本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=contents 一 CALayer是什么? Layers是绘图和动画的基础, L ...
- iOS - CALayer 绘图层
1.CALayer 绘图层 在 iOS 系统中,你能看得见摸得着的东西基本上都是 UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是 UIView.其实 UIView 之 ...
- IOS CALayer的属性和使用
一.CALayer的常用属性 1.@propertyCGPoint position; 图层中心点的位置,类似与UIView的center:用来设置CALayer在父层中的位置:以父层的左上角为原点( ...
- iOS - CALayer相关(CATransform3D)
一.图层的几何 图层的几何简单通俗,图层的所有几何属性(包括矩阵变换),都可以有隐式和显式动画. 图层几何的属性: 1.position是CGPoint值,她指定图层相对于她图层的位置,该值基于父图层 ...
- IOS CALayer(二)
UIview内部有个默认的CALayer对象层,虽然我门不可以重新创建它,但是我门可以再其上面添加子层. 我们知道,UIView有 addSubview:方法,同样,CALayer也有addSubla ...
- IOS CALayer(一)
对于一个app的好坏,我们首要判断的便是app的界面,而界面的建立则是在图形的处理基础上的,说到图形处理又不得不提及Quartz2D,CALayer. 在iOS系统中,你能看得见摸得着的东西基本上都是 ...
- iOS CALayer动画中使用的3个tree
在网上经常看到关于layer的tree的描述,不太理解,今天找到了官方文档,原文在Core Animation Programming Guide 中. Layer Trees Reflect Dif ...
随机推荐
- Guice2.0的变化——第一部分 新的特性(上)
http://superleo.iteye.com/blog/314816 Private Modules PrivateModules 用于创建并不需要对外可见的绑定对象.当然,这样会使得封装变得更 ...
- y=y||'world'与y=y?y:'world'
1.y=y||’world’ function log(x,y){ y=y||’world’; console.log(x,y) } log(‘hello’)===>hello world lo ...
- redis之(五)redis的散列类型的命令
[一]赋值与取值 -->命令:HSET key field value -->往某个key的某个属性设置值 -->命令:HGET key field --> 获取某个k ...
- Edit Distance——经典的动态规划问题
题目描述Edit DistanceGiven two words word1 and word2, find the minimum number of steps required to conve ...
- office2007/2010/2013输入公式的正确方式
博客中的文章均为 meelo 原创,请务必以链接形式注明本文地址 理工科的学生,写报告.写论文那面需要输入公式,过去大家常用的公式编辑器是mathtype,虽然功能强大,但输入极为不方便,输入个指数. ...
- 关于在C#中对抽象类的理解
先说一下自己对类的理解吧.类就是指将一系列具有一些共同特性的事物归纳起来,按照不同的特性分为不同的类.比如在现实世界中人是一类,动物是一类.植物 又是一类.但他们都是生命这一类的派生类.他们都继承了生 ...
- vmware漏洞之一——转:利用一个堆溢出漏洞实现VMware虚拟机逃逸
转:https://zhuanlan.zhihu.com/p/27733895?utm_source=tuicool&utm_medium=referral 小结: vmware通过Backd ...
- 洛谷P2224 [HNOI2001] 产品加工 [DP补完计划,背包]
题目传送门 产品加工 题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时 ...
- org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 32; 元素类型为 "key" 的内容必须匹配 "(column)*"
报错:部分错误信息,主要查看CauseBy Caused by: org.hibernate.InvalidMappingException: Unable to read XML at org.hi ...
- [Sgu395][bzoj2363]Binary Cat Club
一道神题…… rzO 发现立杰在初三(http://hi.baidu.com/wjbzbmr/item/4a50c7d8a8114911d78ed0a9据此可以推断)就怒A了此题…… Orz /*** ...