0

我对 Cocoa 很陌生,但想知道如何更改 CALayer 的坐标系。我阅读了Core Animation Programming Guide 中的Layer Geometry and Transforms文章,但仍然需要一些实用的建议。

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

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

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

4

1 回答 1

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.);
于 2009-06-09T19:17:14.997 回答