在UITextView中强调文本

我如何在UITextView强调文本。 我明白,我需要创build一个UITextView的子类,但什么会根据drawRect:

谢谢。

尝试按如下方式使用NSAttributedString并在UITextView设置。 这适用于iOS6。

 NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Some String"]; [attString addAttribute:(NSString*)kCTUnderlineStyleAttributeName value:[NSNumber numberWithInt:kCTUnderlineStyleSingle] range:(NSRange){0,[attString length]}]; 

有关NSAttributedString更多信息, NSAttributedString查看这个如何使用NSAttributedString?

例如: –

 textView.attributedText = attString; 

从UITextView上的苹果文档 ,

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

attributedText:

文本视图显示的样式文本。

 @property(nonatomic,copy) NSAttributedString *attributedText 

讨论:该属性默认为零。 为这个属性指定一个新的值也可以用相同的string数据replacetext属性的值,尽pipe没有任何格式化信息。 另外,赋值一个新值将更新字体,textColor和textAlignment属性中的值,以便它们反映属性string中从位置0开始的样式信息。

如果你想避免包含CoreText,你可以使用这个属性的属性string:

 @{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)} 

如果这是静态文本,则可以在Interface Builder中对其进行下划线。 请务必在下拉菜单中select“已分配”,以使“文本”

在这里输入图像说明

 textViewMessage.linkTextAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor], NSUnderlineStyleAttributeName: [NSNumber numberWithInt:NSUnderlineStyleSingle]}; 

如果你想格式化你的文本(带下划线的单词,链接,彩色文字…),我build议你使用FTCoreText

 -(IBAction)underline:(id)sender { NSDictionary *underlineAttribute = @{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)}; texts.attributedText = [[NSAttributedString alloc] initWithString:texts.text attributes:underlineAttribute]; } 

如果您使用的是iOS 6,那么您可以使用UITextViewattributedText 文字属性。 将下划线格式应用于文本。 您还可以设置typingAttributes属性,以确保用户input的文本具有特定的格式设置。

我build议你使用CoreText 。 一个基本的教程在这里raywenderlich 。

我build议你使用MFUnderlinedTextView ,这将是有帮助的。

你不能使用“kCTUnderlineStyleAttributeName”或“kCTUnderlineStyleSingle”现在你必须这样做:

  NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Text"]; [attString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:(NSRange){0,[attString length]}]; 

要强调一个文本,你必须去的地方,你可以select复制,剪切,删除选项,现在有更多的选项,如B / I / U(粗体,斜体,下划线)。 select这个选项,就是这样。 并且无法再次select下划线选项。