我正在为我的应用程序制作一个“关于页面”,我必须在该页面上粘贴大量文本(文本将无法编辑)。
我正在使用UITextView
来实现此目的。但是,我需要一些粗体字(如标题)。但我无法实现它。 UITextView
删除了我的所有格式。
我没有在此处显示的代码,因为我只在IB中粘贴了所有文本。
有没有解决办法?例如..我希望标题以粗体显示..
“关于ABC公司
gkskgsagdfgfskgfjkgfgljdgsfjgdsjfgdjlsgflgdslgfljdsgfljgdsjlgfljdsgfljdgslfgls.
jdfjkhdsjlfhdlsfhkldshfkldshflkdhlkfhdklsfhlksdhflkdshflkhdsflkhsdklfhlksdhflkshf
fjhdshfkldshfkldhsfklhdsklfhlkdshfklhdsklfhdklsfhkdshfklhdsklfhklsdfhkldshfkhdsklf
fhjdgfkdgsjkfgjkdsgfjkdsgjfgjdkgfjgsjdfgjkdsgfjkgsdjkfgjsdgfjgsdjkfgjksdgfjkgskjfgs"
答案 0 :(得分:9)
首先将textView
的文字属性保留为“Attributed
”,之后只需选择文字并根据需要更改其样式和字体。
P.S。 - 您必须在IB的属性检查器面板中执行此操作。
修改强>
有关更多信息,请访问this link。
,这主要是因为textField
的文字不会改变,例如 - 关于信息。当这个文本直接插入IB而不是分配文本programmaticaly。
答案 1 :(得分:5)
您可以使用NSAttributedString
,设置文字字体,前景和背景颜色,StrikeThrough
和阴影等。
归因字符串会在字符及其属性之间建立关联。与NSString
个对象一样,有两种变体NSAttributedString
和NSMutableAttributedString
。虽然以前版本的iOS
支持属性字符串,但直到iOS 6
控件(如按钮,标签,文本字段和文本视图)才定义了管理属性的属性。属性应用于一系列字符,因此您可以为字符串的一部分设置strikethrough
属性。同样重要的是要注意,属性字符串对象的默认字体是Helvetica 12-point。如果为整个字符串以外的范围设置font属性,请记住这一点。可以使用属性字符串设置以下属性:
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];
答案 2 :(得分:1)
您可以使用NSMutableAttributedString
支持字符串的多属性属性。
注意: - NSMutableAttributedString
在iOS 6.0及更高版本中可用。
编辑: -
检查: - How to create a UILabel or UITextView with bold and normal text in it?
答案 3 :(得分:1)
查看attributedText
的{{1}}属性
https://developer.apple.com/library/ios/documentation/uikit/reference/uitextview_class/Reference/UITextView.html#//apple_ref/occ/instp/UITextView/attributedText
这就是你如何使你的字符串的一部分变粗 Any way to bold part of a NSString?
答案 4 :(得分:0)
iOS SDK中包含了文本工具包。 iOS 7提供了通过增加字体重量来增强文本易读性的功能,以及为支持动态文本的应用程序设置首选字体大小的选项。用户希望为iOS7编写的应用程序能够遵守这些设置,因此请自行承担风险! 为了使用动态类型,您需要使用样式指定字体,而不是明确说明字体名称和大小。在iOS 7中,UIFont添加了一种新方法,preferredFontForTextStyle,使用用户的字体首选项为给定样式创建字体。
以下是精彩网站Ray wenderlich text kit tutorial
中的精彩教程如果您有时间,请观看WWDC 2013视频会议201
答案 5 :(得分:-7)
UITextView是纯文本,您不能为不同的单词应用不同的样式(字体,颜色)。 我建议你使用 UIWebView 。它是html,因此可以设置样式。