CALayer坐标系
我对 Cocoa 很陌生,但想知道如何更改 CALayer 的坐标系。 我读了这篇文章 图层几何和变换来自核心动画编程指南,但仍然需要一些实用的建议。
默认坐标系的左下角为 (0,0)。 我想将其更改为图层的中心。 那可能吗?
我尝试过的:使用 CATransform3DTranslate 作为层框架的 MidX 和 MidY 的 sublayerTransform,子层显示在正确的位置。 在 setFrameSize 事件中,应该重新计算并再次应用转换。 我更喜欢自动刷新(没有“步骤”)。
或者我应该使用 kCAConstraintMidX 将子层 MidX 与层 MidX 相关联并使用偏移量? 事实上,我使用 CATextLayers 作为子图层,并且想要将文本居中对齐,从而将文本的中心相对于超级图层的中心定位。 我尝试了这个,但是当我调整超级图层的大小时它似乎不会自动刷新。
I'm quite new to Cocoa, but would like to know how to change a CALayer's coordinate system. I read the article Layer Geometry and Transforms from the Core Animation Programming Guide, but still need some practical advice.
The default coordinate system has (0,0) at the lower left corner. I would like to change this to the center of the layer. Is that possible?
What I tried: using a CATransform3DTranslate as sublayerTransform to MidX and MidY of the layer's frame, the sublayers are displayed at the right place. At the setFrameSize event the translation should then be recomputed and applied again. I would rather like an automatic refresh (without 'steps').
Or should I use kCAConstraintMidX to relate the sub layer MidX to the layer MidX and use an offset? In fact, I am using CATextLayers as sublayers, and want to align the text centered, thus position the center of the text relative to the center of the super layer. I tried this, but it doesn't seem to refresh automatically when I resize the super layer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看名为 oalTouch 的 Apple 示例代码,它就是执行此操作的。
Check out Apple sample code called oalTouch which does this.