我在CALayer上遇到了一些奇怪的事情。最后发现CALayer的frame.size不等于它的bounds.size,这是我无法理解的。我知道frame是在super的坐标系中,bounds是它自己的坐标,并且通常的情况是frame.origin不等于bounds.origin,但frame.size等于bounds.size。
这是因为您应用了变换,正如苹果在框架属性的文档中所说的那样。
警告 如果变换属性不是恒等变换,则
该属性的值未定义,因此应被忽略。
...
对此属性的更改可以进行动画处理。然而,如果变换
属性包含非恒等变换,帧的值
属性未定义,不应修改。在这种情况下,你
可以使用 center 属性重新定位视图并调整大小
使用bounds属性来代替。
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html
如果您没有应用变换,则原点可能会有所不同,但大小应保持不变,因为调整一个后会重新调整另一个。
边界矩形的大小与框架的大小相关
矩形,以便其中一个的更改会影响另一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)