2013-02-07 80 views
3

我想在我的文本视图中格式化测试,一些文本以粗体显示一些斜体样的东西。 uitextview有可能吗? 现在我正在使用带有HTML字符串的webview。 如:UITextView自定义

<html><head><style type=\"text/css\">h3 {color:white;} p {color:pink;} p {text-align: center} p {font-family:helvetica;font-size:20px;}</style></head><body>\ 
             <h3></h3>\ 
             <p><b>some text </b></p>\ 
             <p>Short some text</p>\ 
             <p>Child Infusion 7.5 to 15 mg/kg/hr<br>ie 7.5 to 15 times weight per hour</p>\ 
             <p>Adult Infusion 3 to 12 mg/kg/hr<br>ie 3 to 12 mg times weight per hour</p>\ 
             </body></html> 

回答

16

您可以使用NSAttributedString,设置文本字体,前景和背景颜色,删除线和阴影等。

归因串使字符和它们的属性之间的关联。像NSString对象一样,有两种变体,NSAttributedString和NSMutableAttributedString。 尽管以前版本的iOS支持属性字符串,但直到iOS 6时,控件(如按钮,标签,文本字段和文本视图)才会定义一个属性来管理属性。 属性应用于一系列字符,因此您可以为例如字符串的一部分设置删除线属性。注意属性字符串对象的默认字体是Helvetica 12点也很重要。如果您为整个字符串以外的范围设置字体属性,请记住这一点。 可以使用属性字符串设置以下属性: NSString * const NSFontAttributeName; NSString * const NSParagraphStyleAttributeName; NSString * const NSForegroundColorAttributeName; NSString * const NSBackgroundColorAttributeName; NSString * const NSLigatureAttributeName; NSString * const NSKernAttributeName; NSString * const NSStrikethroughStyleAttributeName; NSString * const NSUnderlineStyleAttributeName; NSString * const NSStrokeColorAttributeName; NSString * const NSStrokeWidthAttributeName; NSString * const NSShadowAttributeName; NSString * const NSVerticalGlyphFormAttributeName;

这里有一些例子

//----------------------------- 
// Create attributed string 
//----------------------------- 
NSString *str = @"example for underline \nexample for font \nexample for bold \nexample for italics"; 
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str]; 

// Add attribute NSUnderlineStyleAttributeName 
//[attributedString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:NSMakeRange(12, 9)]; 
[attributedString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:NSMakeRange(12, 9)]; 

// Set background color for entire range 
[attributedString addAttribute:NSBackgroundColorAttributeName 
         value:[UIColor yellowColor] 
         range:NSMakeRange(0, [attributedString length])]; 


// Create NSMutableParagraphStyle object 
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; 
paragraph.alignment = NSTextAlignmentCenter; 

// Add attribute NSParagraphStyleAttributeName 
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraph range:NSMakeRange(0, [attributedString length])]; 



// Set font, notice the range is for the whole string 
    UIFont *font = [UIFont fontWithName:@"Helvetica" size:18]; 
[attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(35, 4)]; 



// Set font, notice the range is for the whole string 
UIFont *fontBold = [UIFont fontWithName:@"Helvetica-Bold" size:18]; 
[attributedString addAttribute:NSFontAttributeName value:fontBold range:NSMakeRange(53, 4)]; 

// Set font, notice the range is for the whole string 
UIFont *fontItalics = [UIFont fontWithName:@"Helvetica-Oblique" size:18]; 
[attributedString addAttribute:NSFontAttributeName value:fontItalics range:NSMakeRange(71, 7)]; 



// Set label text to attributed string 
[self.mytextView setAttributedText:attributedString]; 

`

相关问题