CALayer缩放文本动画

时间:2013-03-02 22:23:33

标签: cocoa-touch core-animation calayer

我有一个自定义CALayer,它包含一组CAAnimationGroup,可以执行大量动画。 其中一个动画设置了我在drawInContext方法中使用的scale属性。

问题在于我无法从中心很好地扩展我的文本。

这种方法有效,但动画期间文字有点跳跃:

NSString *letter = self.letterObject.letter;
UIFont *font = [UIFont fontWithName:@"Helsinki" size:20.0 * self.scale];
CGSize size = [letter sizeWithFont:font];
CGFloat width = size.width;
CGFloat height = size.height;

UIGraphicsPushContext(ctx);
[letter drawInRect:CGRectMake((self.frame.size.width - width) / 2.0,
                              (self.frame.size.height - height) / 2.0,
                              width,
                              height)
          withFont:font];
UIGraphicsPopContext();

我也试过简单地使用CGContextScaleCTM(ctx, self.scale, self.scale);,但我无法从文本的中心开始缩放。

有人可以对此有所了解吗?我在过去几个小时里尝试过各种各样的东西(添加UILabel.layer,CATextLayer,..),但这是最干净的解决方案(我猜)。

0 个答案:

没有答案