我使用属性文本(确切地说是NSMutableAttributedString)来显示可以斜体,粗体或具有超链接的文本(有时也会出现这些文本的组合)。
当我使用UILabel执行此操作时,它完全按照我的要求显示,但链接不起作用。我切换到UITextView,链接功能齐全,但斜体和粗体字体不起作用。
我们从xml文件中提取数据,因此我无法指定要设置的某些字词,但我认为我不需要这样做,因为这样会使用标签。< / p>
答案 0 :(得分:0)
“但斜体和粗体字体不起作用”
不确定究竟什么不起作用,但这里有一段代码可以改变属性文本中的字体特征:
@IBOutlet weak var content: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
let fontDescriptor = UIFontDescriptor.preferredFontDescriptorWithTextStyle(UIFontTextStyleBody)
let existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue | UIFontDescriptorSymbolicTraits.TraitBold.rawValue | UIFontDescriptorSymbolicTraits.TraitItalic.rawValue
let changedFontDescriptor: UIFontDescriptor = fontDescriptor.fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits(rawValue: existingTraitsWithNewTrait))!
let updatedFont = UIFont(descriptor: changedFontDescriptor, size:0.0)
let attributes = [NSFontAttributeName: updatedFont]
let attributedString: NSAttributedString? = NSAttributedString(string: "Hello World!", attributes: attributes)
content.attributedText = attributedString!
}