CALayer坐标系

时间:2009-06-03 22:17:28

标签: cocoa transform calayer coordinate-systems

我对Cocoa很陌生,但想知道如何更改CALayer的坐标系。我从核心动画编程指南中读到了文章Layer Geometry and Transforms,但仍然需要一些实用的建议。

默认坐标系左下角有(0,0)。我想将其更改为图层的中心。这可能吗?

我尝试过:使用CATransform3DTranslate作为sublayerTransform到图层框架的MidX和MidY,子图层显示在正确的位置。在setFrameSize事件中,然后应重新计算转换并再次应用。我宁愿自动刷新(没有“步骤”)。

或者我应该使用kCAConstraintMidX将子图层MidX与图层MidX相关联并使用偏移?事实上,我使用CATextLayers作为子图层,并希望将文本对齐居中,从而相对于超级图层的中心定位文本的中心。我尝试了这个,但是当我调整超级图层时,它似乎没有自动刷新。

1 个答案:

答案 0 :(得分:1)

查看名为oalTouch的Apple示例代码。

// Convert the view point to our layer / sound stage coordinate system, which is centered at (0,0)
CGPoint pointInLayer = CGPointMake(pointInView.x - [self frame].size.width / 2., pointInView.y - [self frame].size.height / 2.);