-2

我有一个文本视图,其中文本显示如下:

how are you?

Fine

现在,如果我为文本视图设置字体,则两行(问题和答案)显示相同的字体,但是我希望问题以一种字体显示并以其他字体回答。我怎样才能做到这一点?

我这样设置字体:

textView = [[UITextView alloc]initWithFrame:CGRectMake(10, 80, 300, 440)];
textView.layer.borderColor = [UIColor blackColor].CGColor;
[textView setFont:[UIFont fontWithName:@"TimesNewRomanPS-ItalicMT" size:14]];
textView.layer.borderWidth = 1.0;
    textView.autoresizesSubviews = YES;
    textView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:textView];

提前致谢!!

4

3 回答 3

4

UITextView 类参考

在 iOS 6 及更高版本中,此类通过使用属性文本属性支持多种文本样式。(iOS 的早期版本不支持样式化文本。)为此属性设置值会导致文本视图使用属性字符串中提供的样式信息。您仍然可以使用 font、textColor 和 textAlignment 属性来设置样式属性,但这些属性适用于文本视图中的所有文本。

此类不支持文本的多种样式。您指定的字体、颜色和文本对齐属性始终适用于文本视图的全部内容。要在您的应用程序中显示更复杂的样式,您需要使用 UIWebView 对象并使用 HTML 呈现您的内容。

因此,对于 iOS 5 或更低版本,您不能在同一页面上有两个,因为它不受支持。只需使用 webview 和 HTML 文件。对于 iOS6,也许你可以尝试使用attributedTextUITextView 的属性。这在 iOS 6 下可用。但从未尝试过。

或者有 2 个不同的 UITextView(它很丑,但就是这样)。

于 2013-02-01T07:15:41.743 回答
0

我猜你想创建一个类似聊天室的应用程序?

如果是这样,我建议将其设为 UITableView。然后制作不同的Cell来搭配不同的风格。

于 2013-02-01T07:28:08.950 回答
0

您可以使用属性字符串来实现此目的,例如:

NSMutableAttributedString *para1 = [[NSMutableAttributedString alloc] initWithString:@"How are you?"];
NSMutableAttributedString *para2 = [[NSMutableAttributedString alloc] initWithString:@"\nFine"];
[para2 setAttributes:@{ NSForegroundColorAttributeName : [UIColor blueColor]}  range:NSMakeRange(0, para2.length)];
[para1 insertAttributedString:para2 atIndex:para1.length];

self.textLabel.attributedText = para1;

或者使用单个属性字符串:

NSMutableAttributedString *para1 = [[NSMutableAttributedString alloc] initWithString:@"How are you?\nFine"];

// Get the range of the last line in the string
__block NSRange range;
[para1.mutableString enumerateLinesUsingBlock:^(NSString *line, BOOL *stop) {
    range = [para1.mutableString rangeOfString:line];
}];

[para1 setAttributes:@{ NSForegroundColorAttributeName : [UIColor blueColor] } range:range];

self.textLabel.attributedText = para1;

这两个示例都导致:

输出

于 2013-02-01T07:43:27.280 回答