如何为UILabel设置不同的字体,其中包含分别包含中文和英文字符的文本?

时间:2011-09-11 05:16:26

标签: iphone ios fonts uikit uilabel

我有一个UILabel文本,其中包含中文和英文字符,

现在我想为中文设置字体,为英文设置另一种字体,

怎么做?

4 个答案:

答案 0 :(得分:3)

有几件事可能对您有意思:

OHAttributedLabel

TTTAttributedLabel

OHAttributedLabel保持它能够处理混合字体,颜色,大小......

答案 1 :(得分:2)

通常一个标签只能有一种字体。如果你想为不同的语言显示不同的字体,你可以在不同的标签中保留不同的语言字符串,并按照你想要的方式排列。

请参阅此选项以确定标签的大小。

Resize UITableViewCell to UILabel's height dynamically

这也很有帮助。

How do I wrap text in a UITableViewCell without a custom cell

答案 2 :(得分:1)

我不相信这是可能的。 font中设置的UILabel属性将应用于该UILabel的text属性中指定的整个字符串。

答案 3 :(得分:0)

我没有尝试使用中文字体,但您可以使用以下代码设置不同/多种字体& Label上的其他属性使用NSMutableAttributedString。 Foll是我的代码:

 UIFont *ArialFont = [UIFont fontWithName:@"arial" size:18.0];
 NSDictionary *arialdict = [NSDictionary dictionaryWithObject: ArialFont forKey:NSFontAttributeName];    
 NSMutableAttributedString *AattrString = [[NSMutableAttributedString alloc] initWithString:title attributes: arialdict];

 UIFont *VerdanaFont = [UIFont fontWithName:@"verdana" size:12.0];
 NSDictionary *veradnadict = [NSDictionary dictionaryWithObject:VerdanaFont forKey:NSFontAttributeName];
 NSMutableAttributedString *VattrString = [[NSMutableAttributedString alloc]initWithString: newsDate attributes:veradnadict];    
 [VattrString addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:(NSMakeRange(0, 15))];

 [AattrString appendAttributedString:VattrString];


 lblText.attributedText = AattrString;

请注意,lblText是UILabel,outlet作为文件所有者。 人们可以继续追加他想要的NSMutableAttributedString ..

另请注意,我添加了verdana&我项目中的arial字体&为此添加了一个plist。