我有一个简单的测试应用程序,它有一个视图,一个视图控制器,所有这些都是通过标准的故事板实例化的。当我运行我的应用程序并在视图控制器中暂停一个断点时,我可以看到在视图上设置了以下值:
self.view.layer.position = (CGPoint) (x=160, y=294)
self.view.layer.frame = (CGRect) (origin=(x=0, y=20) size=(width=320, height=548))
self.view.layer.visibleRect = (CGRect) (origin=(x=0, y=0) size=(width=320, height=548))
我理解帧的初始原点值(假设值20是状态栏的偏移量),但是160/294值来自图层的位置?我被这个困惑了。
答案 0 :(得分:3)
这是因为CALayer的位置属性是相对于其anchorPoint
的。默认情况下,anchorPoint设置为(0.5,0.5),表示图层边界的中心。
如果您尝试以编程方式执行非常基本的定位更改,我会远离视图的图层属性,因为UIView具有自己的定位属性。