iOS5的AutoLayout和CATextLayer

时间:2013-10-29 14:44:04

标签: ios objective-c ios7 interface-builder nsautolayout

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

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

我在我的视图中使用AutoLayout,我知道setFrame方法无法正常工作。在我的CATextLayer框架中,小于self.lblIntPart .So,如何向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"];

1 个答案:

答案 0 :(得分:0)

在尝试重现您的问题之后,我理解这一点。

可能你的Label框架很大,默认的CATextLayer字体属性不完全适合框架。

尝试调整CATextLayer的属性。

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

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