我必须显示一个包含几个粗体字的文本段落。前任。
如果我使用不同的标签,那么在更改方向时它不会正确调整大小。
谁能告诉我最好的方法是什么。
您必须使用 aNSAttributedString
并将其分配给UITextField
,这是一个示例:
UIFont *boldFont = [UIFont boldSystemFontOfSize:fontSize];
UIFont *regularFont = [UIFont systemFontOfSize:fontSize];
NSMutableAttributedString *myAttributedString = [[NSMutableAttributedString alloc] initWithString:yourString];
[myAttributedString addAttribute:NSFontAttributeName
value:boldFont
range:NSMakeRange(0, 2)];
[myAttributedString addAttribute:NSFontAttributeName
value:regularFont
range:NSMakeRange(3, 5)];
[self.description setAttributedText:myAttributedString];
在这里找到所有文档:
您可以使用 UITextView 使用NSAttributedString
(看看苹果文档)
你有一个关于如何使用它的解释here。
您可以找到单词的范围并更改字体或颜色或任何使用:
- (IBAction)colorWord:(id)sender {
NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:self.text.text];
NSArray *words = [self.text.text componentsSeparatedByString:@" "];
for (NSString *word in words)
{
if ([word hasPrefix:@"@"])
{
NSRange range=[self.text.text rangeOfString:word];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:range];
}
}
[self.text setAttributedText:string];
}
对于您的情况,您可以使用 webView 并使用您的字符串加载它:
[webView loadHTMLString:[NSString stringWithFormat:@"<html><body style=\"background-color: transparent;\">This is <b><i>Test</b></i> dummy text ..</body></html>"] baseURL:nil];