iPhone - 使用 CGContext 绘制一些文本:好的但是...镜像

发布于 2024-12-02 05:27:58 字数 204 浏览 2 评论 0原文

当我使用 CGContext 绘制一些文本时,它是镜像绘制的。

我尝试应用一些变换,然后它画得很好,但随后绘图的其余部分和所有坐标似乎都画得很糟糕。

我尝试在绘制文本(并应用转换)之前和之后保存和恢复上下文,但这没有帮助。

如何使用 CGContext 将一些文本绘制到视图上,而不影响绘图的其余部分,也不影响该文本的屏幕 CGPoint 坐标?

When I draw some text using CGContext, it is drawn mirrored.

I tried to apply some transformations, then it is draw well, but then the rest of the drawing and all coordinates seems to be draw bad.

I tried to save and restore the context, before and ater drawing the text (and aplying transformation), but that does not help.

How some text must be drawn onto a View using CGContext without affecting the rest of the drawing, nor the onscreen CGPoint coords for that text ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南街九尾狐 2024-12-09 05:27:58

您能澄清一下“镜像”是什么意思吗?这是一些用于绘制黑色文本的代码。它不应该是“镜像”的。

CGRect viewBounds = self.bounds;
CGContextTranslateCTM(ctx, 0, viewBounds.size.height);
CGContextScaleCTM(ctx, 1, -1);
CGContextSetRGBFillColor(ctx, 0.0, 1.0, 0.0, 1.0);
CGContextSetLineWidth(ctx, 2.0);
CGContextSelectFont(ctx, "Helvetica", 10.0, kCGEncodingMacRoman);
CGContextSetCharacterSpacing(ctx, 1.7);
CGContextSetTextDrawingMode(ctx, kCGTextFill);
CGContextShowTextAtPoint(ctx, 100.0, 100.0, "SOME TEXT", 9);

Can you clarify what you mean as 'mirrored'? Here is some code for drawing some black text. It should not be 'mirrored'.

CGRect viewBounds = self.bounds;
CGContextTranslateCTM(ctx, 0, viewBounds.size.height);
CGContextScaleCTM(ctx, 1, -1);
CGContextSetRGBFillColor(ctx, 0.0, 1.0, 0.0, 1.0);
CGContextSetLineWidth(ctx, 2.0);
CGContextSelectFont(ctx, "Helvetica", 10.0, kCGEncodingMacRoman);
CGContextSetCharacterSpacing(ctx, 1.7);
CGContextSetTextDrawingMode(ctx, kCGTextFill);
CGContextShowTextAtPoint(ctx, 100.0, 100.0, "SOME TEXT", 9);
橘和柠 2024-12-09 05:27:58

我认为你必须反转文本矩阵:

CGAffineTransform transform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, transform);

I think you have to reverse the text matrix :

CGAffineTransform transform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, transform);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文