2011-01-07 60 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

不,你需要做兩個繪製請求 - 每個字體一個 - 但這是相當平凡的。

什麼是不重要的是知道如果文本是動態的文本放置在哪裏。在這種情況下,我會建議繼承UIView和drawRect方法,並自己繪製它。

0

NSAttributedString稍後可用於iOS 3.2。你可以試試這個。否則核心文本庫在那裏實現相同...

+0

我的應用程序部署目標爲3.0 ... ...所以我不能使用。 – 2011-01-07 08:08:45