NSMutableAttributedString

隨著項目的不斷迭代,普通的文本屬性已經(jīng)無法滿足需求岗憋,就需要我們學(xué)習(xí)和使用更加靈活的富文本绪颖。AttributedString 可以分為 NSAttributedString 和 NSMutableAttributedString 兩種抡笼。在使用中通過將 AttributedString 賦值給控件的 attributedText 屬性來添加文字樣式苏揣。有此屬性的控件有 UILabel、UITextField 和 UITextView推姻。

/

1平匈、 NSFontAttributeName(字體)
該屬性所對應(yīng)的值是一個 UIFont 對象。該屬性用于改變一段文本的字體。如果不指定該屬性增炭,則默認(rèn)為12-point Helvetica(Neue)忍燥。

2、 NSParagraphStyleAttributeName(段落)
該屬性所對應(yīng)的值是一個 NSParagraphStyle 對象隙姿。該屬性在一段文本上應(yīng)用多個屬性梅垄。如果不指定該屬性,
則默認(rèn)為 NSParagraphStyle 的defaultParagraphStyle 方法返回的默認(rèn)段落屬性输玷。

3队丝、 NSForegroundColorAttributeName(字體顏色)
該屬性所對應(yīng)的值是一個 UIColor 對象。該屬性用于指定一段文本的字體顏色欲鹏。如果不指定該屬性机久,則默認(rèn)為黑色。

4赔嚎、 NSBackgroundColorAttributeName(字體背景色)
該屬性所對應(yīng)的值是一個 UIColor 對象膘盖。該屬性用于指定一段文本的背景顏色。如果不指定該屬性尤误,則默認(rèn)無背景色侠畔。

5、 NSLigatureAttributeName(連字符)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))损晤。連體字符是指某些連在一起的字符软棺,
它們采用單個的圖元符號。0 表示沒有連體字符沉馆。1 表示使用默認(rèn)的連體字符码党。2表示使用所有連體符號德崭。默認(rèn)值為 1(注意斥黑,iOS 不支持值為 2)。

6眉厨、 NSKernAttributeName(字間距)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))锌奴。字母緊排指定了用于調(diào)整字距的像素點數(shù)。字母緊排的效果依賴于字體憾股。值為 0 表示不使用字母緊排鹿蜀。默認(rèn)值為0。

7服球、 NSStrikethroughStyleAttributeName(刪除線)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))茴恰。該值指定是否在文字上加上刪除線,該值參考“Underline Style Attributes”斩熊。默認(rèn)值是NSUnderlineStyleNone往枣。

8、 NSUnderlineStyleAttributeName(下劃線)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))。該值指定是否在文字上加上下劃線分冈,該值參考“Underline Style Attributes”圾另。默認(rèn)值是NSUnderlineStyleNone。

9雕沉、 NSStrokeColorAttributeName(邊線顏色)
該屬性所對應(yīng)的值是一個 UIColor 對象集乔。如果該屬性不指定(默認(rèn)),則等同于 NSForegroundColorAttributeName坡椒。
否則扰路,指定為刪除線或下劃線顏色。

10肠牲、 NSStrokeWidthAttributeName(邊線寬度)
該屬性所對應(yīng)的值是一個 NSNumber 對象(小數(shù))幼衰。該值改變描邊寬度(相對于字體size 的百分比)。默認(rèn)為 0缀雳,即不改變渡嚣。正數(shù)只改變描邊寬度。
負(fù)數(shù)同時改變文字的描邊和填充寬度肥印。例如识椰,對于常見的空心字,這個值通常為3.0深碱。

11腹鹉、 NSShadowAttributeName(陰影)
該屬性所對應(yīng)的值是一個 NSShadow 對象。默認(rèn)為 nil敷硅。

12功咒、 NSVerticalGlyphFormAttributeName(橫豎排版)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))。0 表示橫排文本绞蹦。1 表示豎排文本力奋。在 iOS 中,總是使用橫排文本幽七,0 以外的值都未定義

13景殷、NSTextEffectAttributeName ->設(shè)置文本特殊效果,取值為 NSString 對象澡屡,目前只有圖版印刷效果可用

14猿挚、 15. NSBaselineOffsetAttributeName ->設(shè)置基線偏移值,取值為 NSNumber (float),正值上偏驶鹉,負(fù)值下偏

15绩蜻、 NSObliquenessAttributeName ->設(shè)置字形傾斜度,取值為 NSNumber (float),正值右傾室埋,負(fù)值左傾

Code1

NSString *str = @"人生若只如初見办绝,何事悲風(fēng)秋畫扇踏兜。\n等閑變卻故人心,卻道故人心易變八秃。\n驪山語罷清宵半碱妆,淚雨霖鈴終不怨。\n何如薄幸錦衣郎昔驱,比翼連枝當(dāng)日愿疹尾。";

// 創(chuàng)建 NSMutableAttributedString
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:str];

// 設(shè)置字體和設(shè)置字體的范圍
[attrStr addAttribute:NSFontAttributeName
                value:[UIFont systemFontOfSize:30.0f]
                range:NSMakeRange(0, 3)];
// 添加文字顏色
[attrStr addAttribute:NSForegroundColorAttributeName
                value:[UIColor redColor]
                range:NSMakeRange(17, 7)];
// 添加文字背景顏色
[attrStr addAttribute:NSBackgroundColorAttributeName
                value:[UIColor orangeColor]
                range:NSMakeRange(17, 7)];
// 添加下劃線
[attrStr addAttribute:NSUnderlineStyleAttributeName
                value:[NSNumber numberWithInteger:NSUnderlineStyleSingle]
                range:NSMakeRange(8, 7)];

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(60, 100, 200, 0)];
label.backgroundColor = [UIColor greenColor];
// 自動換行
label.numberOfLines = 0;
// 設(shè)置label的富文本
label.attributedText = attrStr;
// label高度自適應(yīng)
[label sizeToFit];
[self.view addSubview:label];

Code2

//創(chuàng)建屬性字典
    NSDictionary *attrDict = @{ NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],
                                NSForegroundColorAttributeName: [UIColor blueColor] };
 //創(chuàng)建 NSAttributedString 并賦值
_label.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict]



//===============方式2=======================
    UIFont *fond = [UIFont systemFontOfSize:20];
    UIColor *color = [UIColor redColor];
    
    NSMutableDictionary *attributes = [NSMutableDictionary new];
    [attributes setObject:fond forKey:NSFontAttributeName];
    [attributes setObject:color forKey:NSForegroundColorAttributeName];
    return [[NSAttributedString alloc]initWithString:text attributes:attributes];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市骤肛,隨后出現(xiàn)的幾起案子纳本,更是在濱河造成了極大的恐慌,老刑警劉巖腋颠,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件繁成,死亡現(xiàn)場離奇詭異,居然都是意外死亡淑玫,警方通過查閱死者的電腦和手機(jī)巾腕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門您机,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忠蝗,“玉大人种蝶,你說我怎么就攤上這事承绸。” “怎么了碘饼?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵默责,是天一觀的道長何暇。 經(jīng)常有香客問我但壮,道長冀泻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任蜡饵,我火速辦了婚禮弹渔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘验残。我一直安慰自己捞附,他們只是感情好巾乳,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布您没。 她就那樣靜靜地躺著,像睡著了一般胆绊。 火紅的嫁衣襯著肌膚如雪氨鹏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天压状,我揣著相機(jī)與錄音仆抵,去河邊找鬼跟继。 笑死,一個胖子當(dāng)著我的面吹牛镣丑,可吹牛的內(nèi)容都是我干的舔糖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼莺匠,長吁一口氣:“原來是場噩夢啊……” “哼金吗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起趣竣,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤摇庙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遥缕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卫袒,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年单匣,在試婚紗的時候發(fā)現(xiàn)自己被綠了夕凝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡户秤,死狀恐怖迹冤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情虎忌,我是刑警寧澤泡徙,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站膜蠢,受9級特大地震影響堪藐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挑围,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一礁竞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杉辙,春花似錦模捂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至品腹,卻和暖如春岖食,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舞吭。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工泡垃, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留析珊,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓蔑穴,卻偏偏與公主長得像忠寻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子存和,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

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

  • 前言: 在iOS中锡溯,顯示一段字符串通常會使用UILabel,但是它對文字的展現(xiàn)方式比較單一哑姚,有的時候需要展...
    饒鵬偉閱讀 10,385評論 2 21
  • 1祭饭、窗體 1、常用屬性 (1)Name屬性:用來獲取或設(shè)置窗體的名稱叙量,在應(yīng)用程序中可通過Name屬性來引用窗體倡蝙。 ...
    Moment__格調(diào)閱讀 4,547評論 0 11
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)绞佩,斷路器寺鸥,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • yongningfu閱讀 188評論 0 0
  • Blackmores天然維生素E (Natural Vitamin E) 抗氧化、降低膽固醇品山、有助于心臟健康胆建。 1...
    melody_99cc閱讀 592評論 1 0