【iOS 開發(fā)】Attribute 富文本屬性匯總

NSAttributed

今天突然想到之前用到的富文本用到的屬性太少,想完整的總結(jié)下全部的屬性以備用,所以想著抽點時間來整理下.

富文本的用法

首先,先看一個簡單富文本的例子昆码,了解一下富文本的用法气忠。

** 下面是代碼:**

/* 將需要的富文本屬性放入字典 */NSDictionary*attributes = @{NSForegroundColorAttributeName:[UIColorredColor],NSBackgroundColorAttributeName:[UIColorgreenColor],NSFontAttributeName:[UIFontfontWithName:@"TimesNewRomanPS-BoldItalicMT"size:19.0],NSKernAttributeName:@1.0};

/* 創(chuàng)建富文本對象 */NSAttributedString*attributeText = [[NSAttributedStringalloc] initWithString:@"This is an attributes string"attributes:attributes];

/* 設(shè)置 UILabel 的富文本 */UILabel*label = [[UILabelalloc] initWithFrame:CGRectMake(0,0,500,40)];[label setAttributedText:attributeText];[self.view addSubview:label];

** 效果圖:**

效果圖

用法很簡單,就是先將富文本屬性都放在一個?NSDictionary?字典中赋咽,然后定義一個?NSAttributedString?旧噪,設(shè)置文字和富文本屬性,然后設(shè)置?UILabel?的?AttributedText屬性就可以了

富文本的屬性

用法就是上面說的那樣脓匿,下面主要開始介紹放在?NSDictionary?字典中的不同富文本屬性的用法及效果淘钟。

** 下面是系統(tǒng)提供的所有富文本屬性:**

/** 系統(tǒng)提供的所有富文本屬性 */

NSFontAttributeName// 設(shè)置字體

NSParagraphStyleAttributeName// 設(shè)置段落風(fēng)格

NSForegroundColorAttributeName// 設(shè)置文字顏色

NSBackgroundColorAttributeName// 設(shè)置背景顏色

NSLigatureAttributeName// 設(shè)置連體屬性

NSKernAttributeName// 設(shè)置字符間距

NSStrikethroughStyleAttributeName// 添加刪除線

NSUnderlineStyleAttributeName// 添加下劃線

NSStrokeColorAttributeName// 設(shè)置文字描邊顏色

NSStrokeWidthAttributeName// 設(shè)置文字描邊寬度

NSShadowAttributeName// 設(shè)置陰影

NSTextEffectAttributeName// 設(shè)置文本特殊效果

NSAttachmentAttributeName// 設(shè)置文本附件

NSLinkAttributeName// 設(shè)置鏈接屬性

NSBaselineOffsetAttributeName// 設(shè)置基線偏移量

NSUnderlineColorAttributeName// 添加下劃線顏色

NSStrikethroughColorAttributeName// 添加刪除線顏色

NSObliquenessAttributeName// 設(shè)置字體傾斜

NSExpansionAttributeName// 設(shè)置文本扁平

NSWritingDirectionAttributeName// 設(shè)置文字書寫方向

NSVerticalGlyphFormAttributeName// 設(shè)置文本段落排版格式


下面是詳細的說明:

1. NSFontAttributeName 設(shè)置字體

NSFontAttributeName:[UIFontsystemFontOfSize:(CGFloat)]// 字體大小NSFontAttributeName:[UIFontfontWithName:(nonnullNSString*) size:(CGFloat)]// 字體名稱,字體大小

2. NSParagraphStyleAttributeName 設(shè)置段落風(fēng)格

/* 需要一個 NSMutableParagraphStyle 實例對象陪毡。 */

NSMutableParagraphStyle*paragraph = [[NSMutableParagraphStylealloc] init];

paragraph.alignment =NSTextAlignmentCenter;// 居中

paragraph.lineSpacing =10;// 文字的行間距

/* 用法 */

NSParagraphStyleAttributeName: paragraph

3. NSForegroundColorAttributeName米母、NSBackgroundColorAttributeName 設(shè)置字體和背景顏色

NSForegroundColorAttributeName:[UIColor redColor]

NSBackgroundColorAttributeName:[UIColor greenColor]

4. NSKernAttributeName 設(shè)置字符間距

NSKernAttributeName:@-1.0// 正值間距加寬勾扭,負值間距變窄

5. NSStrikethroughStyleAttributeName、NSUnderlineStyleAttributeName 添加刪除線和下劃線

NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)// 刪除線樣式NSStrikethroughColorAttributeName:[UIColorredColor]// 刪除線顏色

NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle)// 下劃線樣式NSUnderlineColorAttributeName:[UIColorredColor]// 下劃線顏色

6. NSStrokeColorAttributeName铁瞒、NSStrokeWidthAttributeName 設(shè)置文字描邊顏色和寬度

/* 單獨設(shè)置顏色無效果妙色,需要和寬度同時設(shè)置才有效 */

NSStrokeColorAttributeName:[UIColorredColor]

NSStrokeWidthAttributeName:@3

7. NSShadowAttributeName 設(shè)置陰影

/* 需要一個 NSShadow 實例對象。 */

NSShadow* shadow = [[NSShadowalloc]init];

shadow.shadowBlurRadius =5;// 模糊度

shadow.shadowColor = [UIColorgrayColor];// 顏色

shadow.shadowOffset =CGSizeMake(1,3);// 偏移

/* 用法 */

NSShadowAttributeName:shadow

** 效果圖:**


NSShadowAttributeName 設(shè)置陰影

8. NSVerticalGlyphFormAttributeName精拟、NSObliquenessAttributeName、NSExpansionAttributeName 繪制文本虱歪、設(shè)置字體傾斜蜂绎、設(shè)置文本橫向拉伸壓縮屬性


/* 對于 NSVerticalGlyphFormAttributeName 設(shè)置文本排版格式,0 表示橫排文本笋鄙、1 表示豎排文本师枣。在 iOS 中,總是使用橫排文本萧落,0 以外的值都未定義践美。 */

NSVerticalGlyphFormAttributeName:@(0)// 文本排版格式

NSObliquenessAttributeName:@1// 字體傾斜

NSExpansionAttributeName:@1// 文本橫向拉伸壓縮屬性

9. NSLigatureAttributeName 設(shè)置連體屬性

/* 0 表示沒有連體字符,1 表示使用默認的連體字符找岖,2 表示使用所有連體符號陨倡,默認值為 1(iOS 不支持 2) */

NSLigatureAttributeName:@0

NSLigatureAttributeName:@1

** 效果圖:**


@0 的效果圖


@1 的效果圖

10. NSTextEffectAttributeName 設(shè)置文本特殊效果

/* 取值為 NSString 對象,目前只有圖版印刷效果可用许布。*/

NSTextEffectAttributeName:NSTextEffectLetterpressStyle

** 效果圖:**


添加屬性的 label
未添加屬性的 label

11. NSLinkAttributeName 設(shè)置鏈接屬性

/* 設(shè)置文字點擊跳轉(zhuǎn)的網(wǎng)址兴革,點擊后調(diào)用瀏覽器打開指定 URL 地址。 */

NSLinkAttributeName:[NSURLURLWithString:@"http://www.baidu.com"]


12. NSBaselineOffsetAttributeName 設(shè)置基線偏移量

/* 正值上偏蜜唾,負值下偏杂曲。 */

NSBaselineOffsetAttributeName:@3


13. NSAttachmentAttributeName 設(shè)置文本附件


/* 需要一個 NSTextAttachment 實例對象。 */

NSTextAttachment*textAttachment = [[NSTextAttachmentalloc] initWithData:(nullableNSData*) ofType:(nullableNSString*)];

/* 用法 */

NSAttachmentAttributeName:textAttachment


14. NSWritingDirectionAttributeName 設(shè)置文字書寫方向

/* 從左到右書寫 */

@[@(NSWritingDirectionLeftToRight|NSTextWritingDirectionEmbedding)]@[@(NSWritingDirectionLeftToRight|NSTextWritingDirectionOverride)]

/* 從右到左書寫 */

@[@(NSWritingDirectionRightToLeft|NSTextWritingDirectionEmbedding)]@[@(NSWritingDirectionRightToLeft|NSTextWritingDirectionOverride)]

/* 用法 */

NSWritingDirectionAttributeName:@[@(NSWritingDirectionRightToLeft|NSWritingDirectionOverride)]


** 效果圖:**

從右到左書寫的效果圖


好了袁余,大概就是那么多擎勘,有需要補充的后續(xù)還會再補充

一點點的積累才會更加成就你,千里之行始于足下,未來的你會更加優(yōu)秀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市颖榜,隨后出現(xiàn)的幾起案子棚饵,更是在濱河造成了極大的恐慌,老刑警劉巖掩完,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蟹地,死亡現(xiàn)場離奇詭異,居然都是意外死亡藤为,警方通過查閱死者的電腦和手機怪与,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缅疟,“玉大人分别,你說我怎么就攤上這事遍愿。” “怎么了耘斩?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵沼填,是天一觀的道長。 經(jīng)常有香客問我括授,道長坞笙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任荚虚,我火速辦了婚禮薛夜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘版述。我一直安慰自己梯澜,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布渴析。 她就那樣靜靜地躺著晚伙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俭茧。 梳的紋絲不亂的頭發(fā)上咆疗,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音母债,去河邊找鬼民傻。 笑死,一個胖子當(dāng)著我的面吹牛场斑,可吹牛的內(nèi)容都是我干的漓踢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼漏隐,長吁一口氣:“原來是場噩夢啊……” “哼喧半!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起青责,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤挺据,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脖隶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扁耐,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年产阱,在試婚紗的時候發(fā)現(xiàn)自己被綠了婉称。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖王暗,靈堂內(nèi)的尸體忽然破棺而出悔据,到底是詐尸還是另有隱情,我是刑警寧澤俗壹,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布科汗,位于F島的核電站,受9級特大地震影響绷雏,放射性物質(zhì)發(fā)生泄漏头滔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一涎显、第九天 我趴在偏房一處隱蔽的房頂上張望坤检。 院中可真熱鬧,春花似錦棺禾、人聲如沸缀蹄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛀醉,卻和暖如春悬襟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拯刁。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工脊岳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垛玻。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓割捅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親帚桩。 傳聞我的和親對象是個殘疾皇子亿驾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354