【问题标题】:simple CATextLayer scaling problem简单的 CATextLayer 缩放问题
【发布时间】:2010-05-09 13:09:41
【问题描述】:
我在使用 CATextLayer 时遇到了一个简单的缩放问题,但我就是想不通:
我希望 CATextLayer 与它的超级层成比例地增长:
如果 superlayer 的宽度为 300,则 CATextLayer 的文本大小应为 12,如果超级视图的宽度为 600,则文本大小应为 24。
我找不到有效的解决方案!
你能给我一个线索吗?
谢谢,朱利安。
【问题讨论】:
标签:
cocoa
macos
core-animation
quartz-graphics
【解决方案1】:
您可以按比例缩放字体大小。例如,如果超层的宽度从 300 变为 600,则 600/300 = 2。然后将字体大小乘以 2。
【解决方案2】:
如果您希望该层与它的超层一起缩放,您需要像这样设置它的autoresizingMask 属性:
myTextLayer.autoresizingMask = ( kCALayerWidthSizable | kCALayerHeightSizable );
但是,这可能不会改变文本的大小,因为这是CATextLayer 的固定属性。您可能必须自己更改文本的大小以响应图层大小的变化。
【解决方案3】:
遇到了同样的问题。
你应该-
[textLayer setContentsScale:theScaleOfSuperLayer];