2010-07-05 71 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:在所有,任何地方, 你應該。

相關問題