简单的CATextLayer缩放问题

时间:2010-05-09 13:09:42

标签: cocoa macos core-animation quartz-graphics

我对CATextLayer有一个简单的缩放问题,但我无法理解: 我希望CATextLayer的大小与它的超级层成比例增长: 如果超级层的宽度为300,则CATextLayer的文本大小应为12,如果超级视图的宽度为600,则文本大小应为24。 我找不到一个有效的解决方案!

你能告诉我一个线索吗?

谢谢,朱利安。

3 个答案:

答案 0 :(得分:1)

您可以按比例缩放字体大小。例如,如果超级层的宽度从300变为600,则为600/300 = 2.然后将字体大小乘以2.

答案 1 :(得分:0)

如果您希望图层使用其超级图层进行缩放,则需要设置其autoresizingMask属性,如下所示:

myTextLayer.autoresizingMask = ( kCALayerWidthSizable | kCALayerHeightSizable );

但是,这可能不会改变文本的大小,因为它是CATextLayer的固定属性。您可能必须更改文本的大小以响应您自己的图层大小的变化。

答案 2 :(得分:0)

有同样的问题。 你应该 -

 [textLayer setContentsScale:theScaleOfSuperLayer];