0

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

问题是我不能很好地从中心缩放我的文本。

这有点工作,但在动画过程中文字有点跳跃:

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、..),但这将是最干净的解决方案(我猜)。

4

0 回答 0