0

我正在尝试使用 CATextLayer 为文本更改设置动画。

   intValueLayer = [CATextLayer layer];
   [intValueLayer setFrame:self.lblIntPart.bounds];
   [[self.lblIntPart layer] addSublayer:intValueLayer];

我在视图上使用 AutoLayout,并且我知道 setFrame 方法无法正常工作。在我的情况下,CATextLayer 的框架小于 self.lblIntPart 。那么,如何向我的 TextLayer 添加约束或使用与 self.llbIntPart 相同的框架显示它。

谢谢!

所有方法看起来像:

   intValueLayer = [CATextLayer layer];
    [intValueLayer setFrame:self.lblIntPart.bounds];
    [[self.lblIntPart layer] addSublayer:intValueLayer];

    [intValueLayer setAlignmentMode:@"center"];
    [intValueLayer setForegroundColor:self.category.colour.colour.CGColor];
    [intValueLayer setFont:CFBridgingRetain(@"DilleniaUPCBold")];
    [intValueLayer setFontSize:96.0f * scale];
    intValueLayer.contentsScale = [UIScreen mainScreen].scale;

    [intValueLayer setString:@"0"];
4

1 回答 1

0

在尝试重现您的问题后,这就是我的理解。

可能您的标签框架很大,并且默认的 CATextLayer 字体属性不完全适合框架。

尝试调整 CATextLayer 的属性。

[intValueLayer setFont:(__bridge CFTypeRef)([UIFont systemFontOfSize:17])];
[intValueLayer setFontSize:17];

如果您按原样使用标签,则它与属性匹配。

于 2013-10-29T14:57:19.453 回答