我有一些相当简单的代码将一些文本绘制到CGContext中。这是摘录(稍加编辑)。
CGContextSelectFont(context, "Helvetica", 1.5, kCGEncodingMacRoman);
CGContextShowTextAtPoint(context, xpos, ypos, "Hello", 5);
文字呈现正常。但是,由于某些未知原因,在单击包含上下文的视图后,字体会更改为较小的大小。此外,当我调整包含视图的窗口时,字体将返回原始大小。这是什么原因?
答案 0 :(得分:2)
1.5点开始时非常小。假设没有其他缩放生效,则屏幕上将是一个整像素和一个模糊像素。
你可能会看到我遇到的一个错误:在进入drawRect:
时,当前上下文的文本矩阵不是单位矩阵。就我而言,我看到它在两个轴上都包含一个刻度,加上一个平移。 (可能会从绘制标题栏中遗留下来。)我在Radar中将其作为#10585106提交,如果你想要file your own并引用它。
在尝试绘制文字之前,解决方法是set the text matrix返回the identity transform。
一旦你这样做,你会发现你的文字会像你要求的那样微小。您应该将字体大小更改为更合理的字体; Core Text contains a function to get the system fonts(您可以从中get their sizes)和AppKit's NSFont class contains methods for the same purpose。