6

私はしばらくこれに取り組んできました.Quartz 2dでこれを行うには多くの方法があるようです:

1) コア グラフィック メソッドを使用してテキストを描画します...

CGContextSelectFont
CGContextSetRGBFillColor
CGContextShowTextAtPoint

恐ろしく低レベルです。

2) NSString drawAtPoint を使用する

(これまでのところ私が好きな方法)

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

3) UILabel の使用

これをどこかで読んだことがありますが、これが可能かどうかはよくわかりません。しかし、 drawRect 内で UILabel をインスタンス化することは、おそらく何百万回も呼び出されるため、かなりコストがかかると考えています。??


現時点では 2. (NSString drawAtPoint を使用) で問題ありませんが、意見を聞きたいと思っていました。繰り返しますが、テキストとともに図形も描画しているため、drawRect (ビューをサブクラス化) 内でテキストを作成しようとしています。正しい方法は何ですか?

ありがとう

4

3 に答える 3

9

#1 は国際文字をサポートしていません。そのため、ユーザーが入力したテキストを描画するために使用する場合は使用しないでください。

そのため、テキストに標準の ASCII 文字のみが含まれていることが確実でない限り、#2 を使用してください。

于 2010-07-06T01:11:04.163 に答える
3

#2は、CG / CTを使用してより正確な制御が必要でない限り、私が一般的に行う方法です

于 2010-07-06T00:34:32.320 に答える
1

#1を使用すべきではないというYujiに同意しますが、可能な場合はカスタム描画の代わりにUILabelを使用する必要があることを付け加えます。

于 2013-02-11T23:00:14.127 に答える