NSAttributedString drawInRect 当框架偏移时消失

Kon*_*d77 1 uikit nsattributedstring ios

我有一个非常奇怪的问题。当我偏移我用来绘制我的框架/矩形时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];
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

这里是没有偏移的情况。 在此输入图像描述

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

dav*_*ave 5

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

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

CGContextRef context = whatever;
CGContextSaveGState(context);
CGContextTranslateCTM(context, x, y);
// draw here
CGContextRestoreGState(context);
Run Code Online (Sandbox Code Playgroud)