欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS利用NSMutableAttributedString實(shí)現(xiàn)富文本的方法小結(jié)

 更新時(shí)間:2018年05月14日 11:44:32   作者:coder小鵬  
這篇文章主要給大家介紹了關(guān)于iOS利用NSMutableAttributedString如何實(shí)現(xiàn)富文本的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

在iOS開發(fā)過(guò)程中,經(jīng)常會(huì)用到給字體加下劃線,顯示不同顏色和大小的字體等需求,經(jīng)常遇到這種需求都是直接到百度或者谷歌直接把代碼粘過(guò)來(lái),并沒(méi)有做系統(tǒng)的整理,今天剛好有時(shí)間,把這部分的內(nèi)容整理一下,便于后續(xù)的開發(fā),閑話不說(shuō),接下來(lái)就跟著我一起來(lái)了解一下NSMutableAttributedString吧.

NSAttributedString

NSAttributedString對(duì)象管理適用于字符串中單個(gè)字符或字符范圍的字符串和關(guān)聯(lián)的屬性集(例如字體和字距)。NSAttributedString對(duì)象的默認(rèn)字體是Helvetica 12點(diǎn),可能與平臺(tái)的默認(rèn)系統(tǒng)字體不同。因此,您可能希望創(chuàng)建適用于您的應(yīng)用程序的非默認(rèn)屬性的新字符串。您還可以使用NSParagraphStyle類及其子類NSMutableParagraphStyle來(lái)封裝NSAttributedString類使用的段落或標(biāo)尺屬性。

實(shí)例化方法和使用方法

實(shí)例化方法

使用字符串初始化

- (instancetype)initWithString:(NSString *)str;

代碼示例

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"測(cè)試數(shù)據(jù)"];

字典中存放一些屬性名和屬性值

- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSString *,id> *)attrs;

代碼示例

NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"測(cè)試數(shù)據(jù)" attributes:attributedDict];

使用NSAttributedString初始化,與NSMutableString,NSString類似

- (instancetype)initWithAttributedString:(NSAttributedString *)attrStr;

使用方法

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

- (void)setAttributes:(NSDictionary<NSString *,id> *)attrs range:(NSRange)range;

//代碼示例

NSString *string = @"測(cè)試數(shù)據(jù)";
NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString setAttributes:attributedDict range:NSMakeRange(0, string.length)];

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

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

//代碼示例

NSString *string = @"測(cè)試數(shù)據(jù)";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, string.length)];

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

- (void)addAttributes:(NSDictionary<NSString *,id> *)attrs range:(NSRange)range;

//代碼示例

NSString *string = @"測(cè)試數(shù)據(jù)";
NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttributes:attributedDict range:NSMakeRange(0, string.length)];

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

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

//代碼示例

 NSString *string = @"測(cè)試數(shù)據(jù)";
 NSDictionary *attributedDict = @{
          NSFontAttributeName:[UIFont systemFontOfSize:16.0],
          NSForegroundColorAttributeName:[UIColor redColor],
          NSUnderlineStyleAttributeName:@(NSUnderlineStyleThick)
          };
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
 
[attributedString addAttributes:attributedDict range:NSMakeRange(0, string.length)];
 
 
[attributedString removeAttribute:NSForegroundColorAttributeName range:NSMakeRange(0, string.length)];

屬性及說(shuō)明

key 說(shuō)明
NSFontAttributeName 字體,value是UIFont對(duì)象
NSParagraphStyleAttributeName 繪圖的風(fēng)格(居中,換行模式,間距等諸多風(fēng)格),value是NSParagraphStyle對(duì)象
NSForegroundColorAttributeName 文字顏色,value是UIFont對(duì)象
NSLigatureAttributeName 字符連體,value是NSNumber
NSKernAttributeName 字符間隔
NSStrikethroughStyleAttributeName 刪除線,value是NSNumber
NSUnderlineStyleAttributeName 下劃線,value是NSNumber
NSStrokeColorAttributeName 描繪邊顏色,value是UIColor
NSStrokeWidthAttributeName 描邊寬度,value是NSNumber
NSShadowAttributeName 陰影,value是NSShadow對(duì)象
NSTextEffectAttributeName 文字效果,value是NSString
NSAttachmentAttributeName 附屬,value是NSTextAttachment 對(duì)象
NSLinkAttributeName 鏈接,value是NSURL or NSString
NSBaselineOffsetAttributeName 基礎(chǔ)偏移量,value是NSNumber對(duì)象
NSStrikethroughColorAttributeName 刪除線顏色,value是UIColor
NSObliquenessAttributeName 字體傾斜
NSExpansionAttributeName 字體扁平化
NSVerticalGlyphFormAttributeName 垂直或者水平,value是 NSNumber,0表示水平,1垂直

富文本段落排版格式屬性說(shuō)明

屬性 說(shuō)明
lineSpacing 字體的行間距
firstLineHeadIndent 首行縮進(jìn)
alignment (兩端對(duì)齊的)文本對(duì)齊方式:(左,中,右,兩端對(duì)齊,自然)
lineBreakMode 結(jié)尾部分的內(nèi)容以……方式省略 ( "...wxyz" ,"abcd..." ,"ab...yz")
headIndent 整體縮進(jìn)(首行除外)
minimumLineHeight 最低行高
maximumLineHeight 最大行高
paragraphSpacing 段與段之間的間距
paragraphSpacingBefore 段首行空白空間
baseWritingDirection 書寫方向(一共三種)
hyphenationFactor 連字屬性 在iOS,唯一支持的值分別為0和1

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • ios百度地圖的使用(普通定位、反地理編碼)

    ios百度地圖的使用(普通定位、反地理編碼)

    iOS定位 - 普通定位(沒(méi)有地圖) - 反地理編碼(得到具體位置)使用代碼如何實(shí)現(xiàn)呢,下面小編就給大家詳解ios百度地圖的使用(普通定位、反地理編碼,有需要的朋友可以參考下
    2015-08-08
  • IOS開發(fā)筆記整理49之詳解定位CLLocation

    IOS開發(fā)筆記整理49之詳解定位CLLocation

    在項(xiàng)目功能中有一個(gè)定位CLLocation的需求,遇到了一些知識(shí)難點(diǎn),經(jīng)過(guò)各位大俠的幫助,問(wèn)題解決,特此分享供大家學(xué)習(xí),希望大家共同學(xué)習(xí)進(jìn)步
    2015-11-11
  • iOS UIPickerView的簡(jiǎn)單封裝示例

    iOS UIPickerView的簡(jiǎn)單封裝示例

    這篇文章主要給大家介紹了關(guān)于iOS UIPickerView的簡(jiǎn)單封裝的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • iOS開發(fā)中Quartz2D繪圖路徑的使用以及條紋效果的實(shí)現(xiàn)

    iOS開發(fā)中Quartz2D繪圖路徑的使用以及條紋效果的實(shí)現(xiàn)

    這篇文章主要介紹了iOS開發(fā)中Quartz2D繪圖路徑的使用以及條紋效果的實(shí)現(xiàn),代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-11-11
  • 微信支付開發(fā)IOS圖文教程案例

    微信支付開發(fā)IOS圖文教程案例

    這篇文章主要介紹了微信支付開發(fā)IOS案例的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • iOS App開發(fā)中修改UILabel默認(rèn)字體的方法

    iOS App開發(fā)中修改UILabel默認(rèn)字體的方法

    UILabel是控制字體顯示的主要方式,這里我們就來(lái)看看通過(guò)NSAttributedText和NSMutableAttributedText這兩個(gè)類或者用runtime的方式來(lái)在iOS App開發(fā)中修改UILabel默認(rèn)字體的方法
    2016-07-07
  • Unity移動(dòng)端的復(fù)制要這么寫示例代碼

    Unity移動(dòng)端的復(fù)制要這么寫示例代碼

    這篇文章主要給大家介紹了關(guān)于Unity移動(dòng)端的復(fù)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • iOS在固定的label上動(dòng)態(tài)顯示所有文字

    iOS在固定的label上動(dòng)態(tài)顯示所有文字

    這篇文章給大家主要介紹了iOS中如何實(shí)現(xiàn),在固定的label上動(dòng)態(tài)顯示所有文字的方法,文中給出了示例和思路,對(duì)大家的理解很有幫助,感興趣的朋友們下面來(lái)一起看看吧。
    2016-10-10
  • iOS 自定義狀態(tài)欄和導(dǎo)航欄詳細(xì)介紹

    iOS 自定義狀態(tài)欄和導(dǎo)航欄詳細(xì)介紹

    這篇文章主要介紹了iOS 自定義狀態(tài)欄和導(dǎo)航欄詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • iOS UITextField最大字符數(shù)和字節(jié)數(shù)的限制詳解

    iOS UITextField最大字符數(shù)和字節(jié)數(shù)的限制詳解

    在開發(fā)中我們經(jīng)常遇到這樣的需求:在UITextField或者UITextView中限制用戶可以輸入的最大字符數(shù)。但在UITextView , UITextfield 中有很多坑,網(wǎng)上的方法也很多。但是并不是很全面吧,這里全面進(jìn)行了總結(jié),有需要的朋友們可以參考借鑒,下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11

最新評(píng)論