我在CALayer上发生了一些奇怪的事情。最后发现CALayer的frame.size不等于它的bounds.size,我无法理解。我知道帧在超级坐标系中,边界是它自己的坐标,通常的情况是frame.origin不等于bounds.origin但frame.size等于bounds.size。
答案 0 :(得分:7)
这是因为你应用了一个转换,正如苹果在框架属性的文档中所说的那样。
警告如果transform属性不是identity变换,则为 此属性的值未定义,因此应忽略。
...
可以设置对此属性的更改。但是,如果改造 property包含一个非标识变换,即帧的值 属性未定义,不应修改。在那种情况下,你 可以使用center属性重新定位视图并调整大小 使用bounds属性。
如果你没有应用变换,那么原点可能会有所不同,但是尺寸应该与调整一个相同,重新调整另一个。
边界矩形的大小与帧的大小相关联 矩形,以便更改为一个影响另一个。