当帧偏移时,NSAttributedString drawInRect消失

时间:2013-10-07 19:21:00

标签: ios uikit nsattributedstring

我有一个非常奇怪的问题。当我偏移我用于绘制NSAttributedString

的框架/矩形时

我的文字消失了。有什么想法吗? 这是具有40像素的简单偏移的图像。

r.size = [self.text boundingRectWithSize:r.size
                                     options:NSStringDrawingUsesLineFragmentOrigin
                                     context:nil].size;
    r.origin.y +=40;
    [[UIColor orangeColor] setFill];
    CGContextFillRect(ctx, r);
    [self.text drawInRect:r];

结果:

enter image description here

这是没有的偏移量。 enter image description here

如何在给定偏移处绘制AttributedText?

1 个答案:

答案 0 :(得分:4)

我不知道为什么这个问题还没有得到解决。这是NSAttributedString API的一个严重问题,我希望Apple很快就会在文档中或通过修补实现来承认。

目前,您可以通过在绘制字符串之前翻译图形上下文来解决此问题。

CGContextRef context = whatever;
CGContextSaveGState(context);
CGContextTranslateCTM(context, x, y);
// draw here
CGContextRestoreGState(context);