归因于文本而不是更改字体

时间:2015-06-08 20:23:28

标签: ios swift uilabel uitextview nsmutableattributedstring

我使用属性文本(确切地说是NSMutableAttributedString)来显示可以斜体,粗体或具有超链接的文本(有时也会出现这些文本的组合)。

当我使用UILabel执行此操作时,它完全按照我的要求显示,但链接不起作用。我切换到UITextView,链接功能齐全,但斜体和粗体字体不起作用。

我们从xml文件中提取数据,因此我无法指定要设置的某些字词,但我认为我不需要这样做,因为这样会使用标签。< / p>

1 个答案:

答案 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!
    }
相关问题