iOS 教程:屬性字符串

原文鏈接: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
}
  1. 創(chuàng)建一個(gè)普通的字符串痕届,將會(huì)轉(zhuǎn)換成多種屬性字符串。
  2. 創(chuàng)建見(jiàn) 3 個(gè)字典末患,存儲(chǔ)屬性的鍵和值研叫。
  3. 將屬性添加到 attributedString 對(duì)象中。
  4. 最后璧针,將屬性字符串賦值給 Label蓝撇。

運(yùn)行程序,屬性字符串的實(shí)現(xiàn)效果如下陈莽。

可以從 github 上下載 IOS10AttributedStringsTutorial 教程的源代碼渤昌。

本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán)走搁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末独柑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子私植,更是在濱河造成了極大的恐慌忌栅,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曲稼,死亡現(xiàn)場(chǎng)離奇詭異索绪,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)贫悄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)瑞驱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人窄坦,你說(shuō)我怎么就攤上這事唤反〉仕拢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵彤侍,是天一觀的道長(zhǎng)肠缨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)盏阶,這世上最難降的妖魔是什么晒奕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮名斟,結(jié)果婚禮上脑慧,老公的妹妹穿的比我還像新娘。我一直安慰自己蒸眠,他們只是感情好漾橙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著楞卡,像睡著了一般霜运。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒋腮,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天淘捡,我揣著相機(jī)與錄音,去河邊找鬼池摧。 笑死焦除,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的作彤。 我是一名探鬼主播膘魄,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼竭讳!你這毒婦竟也來(lái)了创葡?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绢慢,失蹤者是張志新(化名)和其女友劉穎灿渴,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胰舆,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骚露,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缚窿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棘幸。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滨攻,靈堂內(nèi)的尸體忽然破棺而出够话,到底是詐尸還是另有隱情蓝翰,我是刑警寧澤光绕,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布女嘲,位于F島的核電站,受9級(jí)特大地震影響诞帐,放射性物質(zhì)發(fā)生泄漏欣尼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一停蕉、第九天 我趴在偏房一處隱蔽的房頂上張望愕鼓。 院中可真熱鬧,春花似錦慧起、人聲如沸菇晃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)磺送。三九已至,卻和暖如春灿意,著一層夾襖步出監(jiān)牢的瞬間估灿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工缤剧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留馅袁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓荒辕,卻偏偏與公主長(zhǎng)得像汗销,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抵窒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 作者:Arthur Knopper弛针,原文鏈接,原文日期:2017-04-04譯者:Crystal Sun估脆;校對(duì):w...
    梁杰_numbbbbb閱讀 1,295評(píng)論 1 2
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)钦奋、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,033評(píng)論 4 62
  • 每個(gè)故事的背后還藏有另一個(gè)故事 有人喜歡聽(tīng)疙赠,有人喜歡寫(xiě)付材!我知道你也是有故事的人,只是忘了從何說(shuō)起圃阳。
    陳靡靡閱讀 297評(píng)論 1 2
  • 之前在簡(jiǎn)書(shū)上看過(guò)一個(gè)大神寫(xiě)過(guò)厌衔,但是講得不是很明白。最近沒(méi)事兒我就把他封裝了一下捍岳。先看效果: 分析: 底層放置一個(gè)U...
    離開(kāi)是場(chǎng)無(wú)止境旅行閱讀 2,194評(píng)論 5 52
  • 你說(shuō)富寿,外面下著雨睬隶,我們寫(xiě)著字,多搞笑页徐。我走近窗臺(tái)苏潜,望著路燈下的水窪,那濺起的水花变勇,似乎要打進(jìn)在十四樓的心房恤左。 『分...
    Boyd閱讀 303評(píng)論 0 3