Swift UILebelの指定複数箇所に色を付ける その2:UILabelにHTMLを反映

実現したい事

その2:UILabelにHTMLを反映

HTMLを反映:「1:00 Paris Saint-Germain – FC Nantes」

htmlTextにHTML文字列が格納されている前提。

guard let data = htmlText.data(using: .utf8) else {
    return
}
do {
    let option: [NSAttributedString.DocumentReadingOptionKey: Any] = [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue]
    let attrString = try NSMutableAttributedString(data: data, options: option, documentAttributes: nil)
    label.attributedText = attrString
    label.font = UIFont.systemFont(ofSize: 9, weight: .medium)
    label.lineBreakMode = .byCharWrapping
} catch {
    print(error.localizedDescription)
}
  • NSMutableAttributedStringを使用
  • UILabel.attributedTextに設定
  • UILabel.fontやlineBreakModeは文字列設定後に設定
    事前にStoryboardに設定されていても反映されない

SwiftSwift

Posted by shi-n