2010-07-05 81 views
6

我一直在这一段时间,似乎有很多方法去这个问题石英2D:Quartz 2d/Core Graphics:什么是绘制文本的正确方法?

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

CGContextSelectFont 
CGContextSetRGBFillColor 
CGContextShowTextAtPoint 

和上上,这是非常低的水平。使用的NSString drawAtPoint

2)

我喜欢使用的UILabel

NSString* text = @"Hello"; 
[text drawAtPoint:point withFont:font]; 

3)我已经看到这个地方,但也不太清楚,如果这是可能的

(到目前为止方法) 。但我认为在drawRect中实例化一个UILabel将会非常昂贵,因为drawRect可能会被调用数十亿次。 ??


我做的好的有2(使用的NSString drawAtPoint)的时刻,但我希望得到一些意见。再次,我试图在drawRect中创建文本(我划分了一个视图),因为我也在绘制图形以及文本,什么是正确的方式?

感谢

回答

9

#1不支持国际字符的更加精确的控制。所以,如果您使用它来绘制用户输入的文本,请不要使用它。

所以,请使用#2,除非你是绝对确定文本只包含标准的ASCII字符。

3

#2是如何我通常做,除非我需要使用CG/CT

1

虽然我与虞姬同意,你不应该使用#1,我想补充一点,如果可能的话,你应该使用一个UILabel 自定义绘制的,而不是,因为如果你能避免实施-drawRect:在所有,任何地方, 你应该。

相关问题