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