iOS 富文本

  • 在iOS開(kāi)發(fā)中,不免會(huì)遇到給一行文字設(shè)置不同的顏色.這個(gè)時(shí)候,最先想到的可能是多寫(xiě)幾個(gè)UILabel,但是這樣未免也太麻煩了,還有就是給文字加下劃線,刪除線等等...類似于這樣的功能,其實(shí)在iOS開(kāi)發(fā)中可以使用NSAttributedstringNSMutableAttributedString來(lái)解決.稱其為富文本.
  • 那我們就來(lái)看看如果使用富文本來(lái)創(chuàng)建出豐富多彩的文字.這里我們都使用UILabel來(lái)測(cè)試.
    1.使用NSAttributedstring來(lái)設(shè)置
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(40, 50, 300, 120)];
    label.numberOfLines = 0;
    [self.view addSubview:label];
    NSMutableDictionary *arrts = [NSMutableDictionary dictionary];
    arrts[NSForegroundColorAttributeName] = [UIColor redColor];
    arrts[NSUnderlineStyleAttributeName] = @1;
    //NSAttributedString: 帶有屬性的文字(富文本)
    NSAttributedString *attStr = [[NSAttributedString alloc]initWithString:@"我常常帶著一顆虔誠(chéng)的心感謝上蒼的賦予,我感謝天,感謝地,感謝生命的存在,感謝陽(yáng)光的照耀,感謝豐富多彩的生活." attributes:arrts];
    label.attributedText = attStr;
```
![NSAttributedString.png](http://upload-images.jianshu.io/upload_images/1656986-96d9702bd9fce59f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2.使用`NSMutableAttributedString`來(lái)設(shè)置,這個(gè)更加可操控性.
```
    //NSAttributedString: 帶有屬性的文字(富文本)
    NSMutableDictionary *arrts = [NSMutableDictionary dictionary];
    NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:@"我常常帶著一顆虔誠(chéng)的心感謝上蒼的賦予,我感謝天,感謝地,感謝生命的存在,感謝陽(yáng)光的照耀,感謝豐富多彩的生活." attributes:arrts];
    [attStr setAttributes:@{NSForegroundColorAttributeName : [UIColor orangeColor]} range:NSMakeRange(0, 5)];
    [attStr setAttributes:@{NSForegroundColorAttributeName : [UIColor orangeColor]} range:NSMakeRange(7, 15)];
    [attStr setAttributes:@{NSUnderlineStyleAttributeName : @"1",
                            NSForegroundColorAttributeName : [UIColor cyanColor]} range:NSMakeRange(20, 30)];
    label.attributedText = attStr;
```
![NSMutableAttributedString.png](http://upload-images.jianshu.io/upload_images/1656986-2e8b1e30bbc4d351.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 最后看一下其中的屬性(富文本的東西還有很多,大家自己去開(kāi)發(fā)吧)
```
NSFontAttributeName                設(shè)置字體屬性,默認(rèn)值:字體:Helvetica(Neue) 字號(hào):12
NSForegroundColorAttributeNam      設(shè)置字體顏色,取值為 UIColor對(duì)象,默認(rèn)值為黑色
NSBackgroundColorAttributeName     設(shè)置字體所在區(qū)域背景顏色,取值為 UIColor對(duì)象,默認(rèn)值為nil, 透明色
NSLigatureAttributeName            設(shè)置連體屬性,取值為NSNumber 對(duì)象(整數(shù)),0 表示沒(méi)有連體字符,1 表示使用默認(rèn)的連體字符
NSKernAttributeName                設(shè)定字符間距,取值為 NSNumber 對(duì)象(整數(shù)),正值間距加寬,負(fù)值間距變窄
NSStrikethroughStyleAttributeName  設(shè)置刪除線,取值為 NSNumber 對(duì)象(整數(shù))
NSStrikethroughColorAttributeName  設(shè)置刪除線顏色,取值為 UIColor 對(duì)象,默認(rèn)值為黑色
NSUnderlineStyleAttributeName      設(shè)置下劃線,取值為 NSNumber 對(duì)象(整數(shù)),枚舉常量 NSUnderlineStyle中的值,與刪除線類似
NSUnderlineColorAttributeName      設(shè)置下劃線顏色,取值為 UIColor 對(duì)象,默認(rèn)值為黑色
NSStrokeWidthAttributeName         設(shè)置筆畫(huà)寬度,取值為 NSNumber 對(duì)象(整數(shù)),負(fù)值填充效果,正值中空效果
NSStrokeColorAttributeName         填充部分顏色,不是字體顏色,取值為 UIColor 對(duì)象
NSShadowAttributeName              設(shè)置陰影屬性,取值為 NSShadow 對(duì)象
NSTextEffectAttributeName          設(shè)置文本特殊效果,取值為 NSString 對(duì)象,目前只有圖版印刷效果可用:
NSBaselineOffsetAttributeName      設(shè)置基線偏移值,取值為 NSNumber (float),正值上偏,負(fù)值下偏
NSObliquenessAttributeName         設(shè)置字形傾斜度,取值為 NSNumber (float),正值右傾,負(fù)值左傾
NSExpansionAttributeName           設(shè)置文本橫向拉伸屬性,取值為 NSNumber (float),正值橫向拉伸文本,負(fù)值橫向壓縮文本
NSWritingDirectionAttributeName    設(shè)置文字書(shū)寫(xiě)方向,從左向右書(shū)寫(xiě)或者從右向左書(shū)寫(xiě)
NSVerticalGlyphFormAttributeName   設(shè)置文字排版方向,取值為 NSNumber 對(duì)象(整數(shù)),0 表示橫排文本,1 表示豎排文本
NSLinkAttributeName                設(shè)置鏈接屬性,點(diǎn)擊后調(diào)用瀏覽器打開(kāi)指定URL地址
NSAttachmentAttributeName          設(shè)置文本附件,取值為NSTextAttachment對(duì)象,常用于文字圖片混排
NSParagraphStyleAttributeName      設(shè)置文本段落排版格式,取值為 NSParagraphStyle 對(duì)象
```
- ####如果錯(cuò)誤,歡迎雅正

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容