iOS----NSMutableAttributedString

在iOS開發(fā)中构罗,會有一些需求要求文字顯示不同的顏色和字體嬉橙,也可能會要求給文字或者文字中的某幾個加刪除線或者下劃線的需求亚脆。面對這樣的需求臼隔,當(dāng)初很抓狂的嘹裂,但是當(dāng)了解到NSMutableAttributedString,一個帶屬性的字符串摔握,上面的問題就很方便的解決了

//使用方法:

UILabel* lab = [[UILabel alloc]init];

[self.view addSubview:lab];

lab.frame = CGRectMake(0, 80, ScreenWidth, 90);

//1.初始化--字符串

NSMutableAttributedString* attStr = [[NSMutableAttributedString alloc]initWithString:@"今天是個好日子"];

//存放屬性名和屬性值的字典

NSDictionary *attributeDict = [NSDictionary dictionaryWithObjectsAndKeys:

[UIFont systemFontOfSize:15.0],NSFontAttributeName,

[UIColor redColor],NSForegroundColorAttributeName,

NSUnderlineStyleAttributeName,NSUnderlineStyleSingle,nil];

[attStr setAttributes:attributeDict range:NSMakeRange(0, attStr.length)];

lab.attributedText = attStr;

使用方法:

為某一范圍內(nèi)文字設(shè)置多個屬性

- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;

為某一范圍內(nèi)文字添加某個屬性

- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;

為某一范圍內(nèi)文字添加多個屬性

- (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;

移除某范圍內(nèi)的某個屬性

- (void)removeAttribute:(NSString *)name range:(NSRange)range;

2.? ? 常見的屬性及說明

NSFontAttributeName

字體

NSParagraphStyleAttributeName

段落格式

NSForegroundColorAttributeName

字體顏色

NSBackgroundColorAttributeName

背景顏色

NSStrikethroughStyleAttributeName

刪除線格式

NSUnderlineStyleAttributeName

下劃線格式

NSStrokeColorAttributeName

刪除線顏色

NSStrokeWidthAttributeName

刪除線寬度

NSShadowAttributeName

陰影

但是在iOS10.3系統(tǒng)以后--刪除 刪除線(NSStrikethroughStyleAttributeName)富文本不顯示寄狼,確切的說是在字符串中間某一段文字添加刪除線富文本會出現(xiàn)異常。給整個字符串添加刪除線富文本也不行氨淌。只要是添加刪除線富文本的字符串中包含中文就是不行泊愧;

另外在iOS10.3以后,這個人民幣符號“¥”和“¥”的區(qū)別盛正,前面那個就可以删咱,后面直接切換成中文輸入法的就不行。

iOS 10.3上顯示異常蛮艰,需要在添加一個NSBaselineOffsetAttributeName屬性才可以腋腮。

如 [attStr addAttribute:NSBaselineOffsetAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, 3)];

注意:這個時候在模擬器上是可以的雀彼,真機(jī)上還是不行。原因就是你設(shè)置字符串中的某一段文字下劃線富文本即寡。

直接給某一字符串全體設(shè)置下劃線富文本是可以的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末徊哑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子聪富,更是在濱河造成了極大的恐慌莺丑,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件墩蔓,死亡現(xiàn)場離奇詭異梢莽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)奸披,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門昏名,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阵面,你說我怎么就攤上這事轻局。” “怎么了样刷?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵仑扑,是天一觀的道長。 經(jīng)常有香客問我置鼻,道長镇饮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任箕母,我火速辦了婚禮储藐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘司蔬。我一直安慰自己邑茄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布俊啼。 她就那樣靜靜地躺著,像睡著了一般左医。 火紅的嫁衣襯著肌膚如雪授帕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天浮梢,我揣著相機(jī)與錄音跛十,去河邊找鬼。 笑死秕硝,一個胖子當(dāng)著我的面吹牛芥映,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼奈偏,長吁一口氣:“原來是場噩夢啊……” “哼坞嘀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起惊来,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤丽涩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后裁蚁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矢渊,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年枉证,在試婚紗的時候發(fā)現(xiàn)自己被綠了矮男。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡室谚,死狀恐怖昂灵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舞萄,我是刑警寧澤眨补,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站倒脓,受9級特大地震影響撑螺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崎弃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一甘晤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饲做,春花似錦线婚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泪姨,卻和暖如春游沿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肮砾。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工诀黍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仗处。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓眯勾,卻偏偏與公主長得像枣宫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吃环,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

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