频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
Cocoa中层(layer)坐标系的极简理解
2016-06-06 09:15:24         来源:大熊猫猪侯佩 (︶^︶)  
收藏   我要投稿
Cocoa层的坐标系一直理解的不清晰,现在把它整理总结一下:

1: layer在super layer中的位置由frame属性来确定,而bounds属性的原点永远是(0,0),因为bounds相对的layer自己.

2: layer还有一个position属性,它就是锚点在super layer 中的位置.它和锚点有着直接的关系,虽然它和锚点不在一个坐标系中,但是它们是重合的!position的坐标系在其superlayer中,而锚点的坐标系在layer自身上.

 

这里写图片描述

 

3: 一个很神奇的特点是,虽然锚点和position密切相关,但是修改两者之一并不会对另外一个的值产生任何影响!所影响的是frame中origin的值!一个推论是:如果改变锚点,则layer在superlayer中的位置也会发生改变,即origin会改变.

网上一段理解是:因为它们不在一个坐标系,所以互相不会受影响,但同时它们又是相互影响的(有点量子力学的赶脚 ;])

 

这里写图片描述

 

 

这里写图片描述

 

4: 如果直接修改layer.frame中的origin值,所影响的将会是position.

5: 如下公式帮助理解:

position.x = frame.origin.x + anchorPoint.x * bounds.size.width;

position.y = frame.origin.y + anchorPoint.y * bounds.size.height;

6: mac和iOS中关于origin的位置是不同的:

 

这里写图片描述
点击复制链接 与好友分享!回本站首页
相关TAG标签 坐标系 中层
上一篇:有效避免OOM--合理使用软引用和弱引用
下一篇:Monkey、MonkeyRunner自动化测试文档
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站