Quartz 2d/Core Graphics:绘制一些文本的正确方法是什么?

for*_*yez 6 iphone cocoa-touch objective-c quartz-graphics quartz-2d

我已经有一段时间了,似乎在石英2d中有很多方法可以解决这个问题:

1)使用核心图形方法绘制文本...

CGContextSelectFont
CGContextSetRGBFillColor
CGContextShowTextAtPoint
Run Code Online (Sandbox Code Playgroud)

等等,这是非常低的水平.

2)使用NSString drawAtPoint

(到目前为止我喜欢的方法)

NSString* text = @"Hello";
[text drawAtPoint:point withFont:font];
Run Code Online (Sandbox Code Playgroud)

3)使用UILabel

我已经在某个地方看过这个,但不太确定这是否可行.但是我认为在drawRect中实例化UILabel会非常昂贵,因为drawRect可能被称为无数次.??


我现在正在使用2.(使用NSString drawAtPoint),但我想得到一些意见.同样,我正在尝试在drawRect中创建文本(我将视图子类化),因为我还在绘制形状和文本,这是正确的方法吗?

谢谢

Yuj*_*uji 9

#1不支持国际字符.因此,如果您使用它来绘制用户输入的文本,请不要使用它.

因此,除非您完全确定文本仅包含标准ASCII字符,否则请使用#2 .