原文鏈接:https://www.ioscreator.com/tutorials/attributed-strings-ios-tutorial-ios10
作者:Arthur Knopper
原文日期:2017/04/04
譯者:Crystal Sun
譯者注:本文是之前一篇文章的更新版本并级,舊文鏈接初家,舊文使用的 Swift 版本不是 3.0注服,本文更新了代碼凰锡,升級(jí)到了 Swift 3.0泛鸟。
屬性字符串(Attributed Strings)可以為文本賦予各種各樣的屬性奄容,還能一次給(部分)文本賦值多個(gè)屬性。在本節(jié)教程中啡邑,將學(xué)會(huì)給 label 文本里的每個(gè)單詞各設(shè)置不一樣的樣式贱勃。本節(jié)教程使用的是 Xcode 8 和 iOS 10。
打開(kāi) Xcode谣拣,創(chuàng)建一個(gè) Single View Application募寨。
Product Name 使用 IOS10AttributedStringsTutorial,填寫(xiě)自己的 Organization Name 和 Organization Identifier森缠,Language 一欄選擇 Swift,Devices 一欄選擇 iPhone仪缸。
打開(kāi) Storyboard贵涵,從 Object-Library(控件庫(kù))中拖拽一個(gè) Label 控件到主界面,點(diǎn)擊 Storyboard 右下角 Auto Layout 的 Align 按鈕,添加下圖所示約束宾茂,點(diǎn)擊 “Add 1 Constraint”瓷马。。
點(diǎn)擊 Auto Layout 的 Pin 按鈕跨晴,添加如下圖所示約束欧聘,點(diǎn)擊 “Add 1 Constraint”。
點(diǎn)擊 Assistant Editor端盆,確保 ViewController.swift 文件可見(jiàn)怀骤。按住 Control 鍵,將 Label 控件拖拽到 ViewController 類(lèi)下面焕妙,創(chuàng)建下列 Outlet 連接蒋伦。
打開(kāi) ViewController.swift 文件,如下所示對(duì) viewDidLoad 方法進(jìn)行修改焚鹊。
override func viewDidLoad() {
super.viewDidLoad()
// 1
let string = "Testing Attributed Strings"
let attributedString = NSMutableAttributedString(string: string)
// 2
let firstAttributes:[String:Any] = [NSForegroundColorAttributeName: UIColor.blue, NSBackgroundColorAttributeName: UIColor.yellow, NSUnderlineStyleAttributeName: 1]
let secondAttributes:[String:Any] = [NSForegroundColorAttributeName: UIColor.red, NSBackgroundColorAttributeName: UIColor.blue, NSStrikethroughStyleAttributeName: 1]
let thirdAttributes:[String:Any] = [NSForegroundColorAttributeName: UIColor.green, NSBackgroundColorAttributeName: UIColor.black, NSFontAttributeName: UIFont.systemFont(ofSize: 40)]
// 3
attributedString.addAttributes(firstAttributes, range: NSRange(location: 0, length: 8))
attributedString.addAttributes(secondAttributes, range: NSRange(location: 8, length: 11))
attributedString.addAttributes(thirdAttributes, range: NSRange(location: 19, length: 7))
// 4
attributedLabel.attributedText = attributedString
}
- 創(chuàng)建一個(gè)普通的字符串痕届,將會(huì)轉(zhuǎn)換成多種屬性字符串。
- 創(chuàng)建見(jiàn) 3 個(gè)字典末患,存儲(chǔ)屬性的鍵和值研叫。
- 將屬性添加到
attributedString
對(duì)象中。 - 最后璧针,將屬性字符串賦值給 Label蓝撇。
運(yùn)行程序,屬性字符串的實(shí)現(xiàn)效果如下陈莽。
可以從 github 上下載 IOS10AttributedStringsTutorial 教程的源代碼渤昌。
本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán)走搁。