在 CALayer 的 API 中,'position' 用于设置图层的位置。
根据我自己的测试,设置 bounds.origin 没有任何作用。我错过了什么吗?
在 CALayer 的 API 中,'position' 用于设置图层的位置。
根据我自己的测试,设置 bounds.origin 没有任何作用。我错过了什么吗?
bounds.origin
控制图层坐标系的原点相对于其超图层中的图层框架的位置。改变它有两个明显的效果:
图层的子图层的位置。例如,当您滚动 a 时UIScrollView
,滚动视图不会更改其子视图的框架。它只是改变了它的bounds.origin
. 我建议设置一个带有滚动视图的玩具应用程序,并NSLog("scroll view bounds = %@", NSStringFromCGRect(scrollView.bounds));
通过计时器或其他触发器来了解正在发生的事情。
中的图形上下文坐标系的原点drawInContext:
。通常,您会在视图的drawRect:
方法中看到这种效果。你的CGContext
里面drawRect:
会被翻译self.bounds.origin
。
您可能会发现阅读iOS 视图编程指南中的“查看几何和坐标系”和核心动画编程指南中的“层对象定义它们自己的几何图形”很有帮助,尽管实际上它们都没有很好地讨论边界起源。
更改边界矩形会更改内容在图层本身坐标系中的位置和大小。更改框架(或位置)会更改图层在其上层坐标系中的位置。通常你只想改变框架,而不是边界。