2011-01-07 7 views
0

私は以下の方法で文字列を描きます。iPhoneで文字を描く

-(void) drawRect:(CGRect)rect 
{ 
    NSString *mName = @"Hi what are you doing"; 
    [mName drawInRect:CGRectMake(0,0,100,12) withFont:[UIFont boldSystemFontOfSize:12] lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter] 
} 

"Hi"を別のフォントで描画することは可能ですか?iPhoneの別のフォントでは「何か」を描画できますか?

答えて

1

各単語の描画にはdrawAtPoint:withFont:メソッドを使用してください。描画される各文字列の位置を計算する必要があります。これはsizeWithFont:の方法で行うことができます。例:

NSString* firstString = @"Hi "; 
NSString* secondString = @"what"; 
// where to draw 
CGPoint position = CGPointMake(0, 0); 
CGFloat offset = [firstString sizeWithFont:font1].width + kSpaceBetweenWords; 
// draw "Hi" with font1 
[firstString drawAtPoint:position withFont:font1]; 
// draw "what" with font2 
[secondString drawAtPoint:CGPointMake(position.x+offset, position.y) withFont:font2]; 
0

いいえ、フォントごとに1つずつ2つの描画要求を行う必要がありますが、それはやや単純です。

些細ではないことは、テキストが動的である場合、テキストをどこに配置するかを知ることです。その場合は、UIViewとdrawRectメソッドのサブクラス化をお勧めしたいと思います。

0

NSAttributedStringは、iOS 3.2以降で使用できます。これを試すことができます。それ以外の場合、コアテキストライブラリは同じものを実現するためのものです。

+0

私のアプリのデプロイメントターゲットは3.0です。だから私はそれを使用できません。 –

+0

コアテキストライブラリを使用して上記の文字列を変換するサンプルサンプルを投稿できますか? –

+0

http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/CoreText_Programming/Operations/Operations.html#//apple_ref/doc/uid/TP40005533-CH4-SW18 –

関連する問題