亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS利用NSMutableAttributedString實現富文本的方法小結

2020-07-26 02:27:40
字體:
來源:轉載
供稿:網友

前言

在iOS開發過程中,經常會用到給字體加下劃線,顯示不同顏色和大小的字體等需求,經常遇到這種需求都是直接到百度或者谷歌直接把代碼粘過來,并沒有做系統的整理,今天剛好有時間,把這部分的內容整理一下,便于后續的開發,閑話不說,接下來就跟著我一起來了解一下NSMutableAttributedString吧.

NSAttributedString

NSAttributedString對象管理適用于字符串中單個字符或字符范圍的字符串和關聯的屬性集(例如字體和字距)。NSAttributedString對象的默認字體是Helvetica 12點,可能與平臺的默認系統字體不同。因此,您可能希望創建適用于您的應用程序的非默認屬性的新字符串。您還可以使用NSParagraphStyle類及其子類NSMutableParagraphStyle來封裝NSAttributedString類使用的段落或標尺屬性。

實例化方法和使用方法

實例化方法

使用字符串初始化

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

代碼示例

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"測試數據"];

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

- (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:@"測試數據" attributes:attributedDict];

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

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

使用方法

為某一范圍內的文字設置多個屬性的方法

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

//代碼示例

NSString *string = @"測試數據";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)];

為某一范圍內的文字添加某個屬性的方法

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

//代碼示例

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

為某一范圍內的文字添加多個屬性的方法

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

//代碼示例

NSString *string = @"測試數據";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)];

移除某個范圍內的某個屬性的方法

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

//代碼示例

 NSString *string = @"測試數據"; 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)];

屬性及說明

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

富文本段落排版格式屬性說明

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久| 日韩精品高清视频| 奇门遁甲1982国语版免费观看高清| 欧美日韩日本国产| 久久久97精品| 国产一区二区三区四区福利| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩精品福利网站| 国产精品亚洲一区二区三区| xvideos国产精品| 欧美成人免费一级人片100| 亚洲精品免费在线视频| 欧美性受xxxx白人性爽| 97在线视频免费| 亚洲性线免费观看视频成熟| 91免费精品国偷自产在线| 亚洲人成网7777777国产| 久久精品国产v日韩v亚洲| 蜜臀久久99精品久久久久久宅男| 欧美性高潮在线| www.日韩欧美| 尤物九九久久国产精品的特点| 国产亚洲精品久久久久久牛牛| 日韩av免费网站| 日韩av理论片| 日韩av在线资源| 亚洲成人在线视频播放| 一区二区亚洲欧洲国产日韩| 国产精品女视频| 夜夜嗨av色综合久久久综合网| 欧美日韩免费区域视频在线观看| 亚洲国产美女精品久久久久∴| 亚洲综合精品伊人久久| 亚洲成人xxx| 国产在线久久久| 精品国产精品自拍| 久久精品久久久久久国产 免费| 91av在线影院| 欧美亚洲国产视频| 98视频在线噜噜噜国产| 日本精品一区二区三区在线播放视频| 国产成人免费av| 亚洲精品网址在线观看| 国产亚洲欧美日韩一区二区| 成人久久久久爱| 98精品国产高清在线xxxx天堂| 国产香蕉精品视频一区二区三区| 亚洲男女性事视频| 国产成人精品久久| 中文字幕免费精品一区| 欧美一区二区视频97| 日韩精品视频中文在线观看| 久久久99久久精品女同性| 日韩av在线免费看| 91成人免费观看网站| 国产精品∨欧美精品v日韩精品| 日韩高清免费在线| 久久这里只有精品99| 精品久久久久久电影| 国产亚洲欧美另类中文| 欧美野外wwwxxx| 中文字幕一区二区精品| 8x海外华人永久免费日韩内陆视频| 色偷偷亚洲男人天堂| 日韩在线国产精品| 日本三级久久久| 4438全国成人免费| 狠狠爱在线视频一区| 欧美又大粗又爽又黄大片视频| 欧美日韩福利视频| 日韩av网址在线| 91在线播放国产| 亚洲性视频网址| 久久激情五月丁香伊人| 亚洲午夜激情免费视频| 在线性视频日韩欧美| 欧美成人免费网| 亚洲国产精品福利| 国产精品爱啪在线线免费观看| 97超碰国产精品女人人人爽| 亚洲精品国产精品自产a区红杏吧| 18性欧美xxxⅹ性满足| 国产精品久久久久久久久粉嫩av| 精品人伦一区二区三区蜜桃网站| 久久久国产一区二区三区| 91国内精品久久| 久久夜色精品国产亚洲aⅴ| 国产精品视频免费在线| 国模精品视频一区二区| 色yeye香蕉凹凸一区二区av| 97av视频在线| 亚洲一区二区三区777| 国产精品久久久久久av福利| 亚洲国产欧美自拍| 亚洲激情久久久| 亚洲一区二区三区sesese| 欧美一级免费看| 亚洲最大的av网站| 亚洲国产欧美一区二区三区久久| 久久精品国产成人| 国内免费精品永久在线视频| 国内精品久久久| 日韩欧美成人精品| 亚洲a级在线播放观看| 国产精品久久久久久一区二区| 国产日韩精品电影| 日韩黄色av网站| 亚洲色在线视频| 国产成人精品久久亚洲高清不卡| 亚洲新声在线观看| 高清亚洲成在人网站天堂| 国产精品va在线| 亚洲精品电影网| 欧美日韩成人在线视频| 亚洲香蕉成人av网站在线观看| 青草青草久热精品视频在线观看| 高清在线视频日韩欧美| 成人中文字幕在线观看| 国产91色在线免费| 欧美视频在线观看免费| 88国产精品欧美一区二区三区| 欧美精品在线观看| 最近2019年好看中文字幕视频| 日本国产高清不卡| 日韩精品欧美激情| 久久91精品国产91久久久| 好吊成人免视频| 国产成人精品午夜| 亚洲精品国产免费| 成人激情视频小说免费下载| 国产亚洲免费的视频看| 91免费在线视频| 久久久www成人免费精品张筱雨| 成人黄色免费在线观看| 4388成人网| 久久影视电视剧凤归四时歌| 国产精品美女久久久久av超清| 国产精品三级久久久久久电影| 欧美日韩一区二区在线| 福利微拍一区二区| 亚洲va久久久噜噜噜久久天堂| 中日韩午夜理伦电影免费| 91麻豆桃色免费看| 成人久久精品视频| 久久免费视频网| 国产丝袜一区二区三区| 日本一区二区在线免费播放| 久99九色视频在线观看| 国产成人中文字幕| 日韩国产在线播放| 欧美日韩中文字幕综合视频| 日韩有码在线播放| 国产精品自产拍在线观看| 国产一区二区丝袜高跟鞋图片| 国产精品美女久久久免费| 一区二区三区日韩在线| 亚洲精品ady| 欧洲美女免费图片一区| 久久久成人av| 韩国三级电影久久久久久| 欧美日韩国产中字| 狠狠色香婷婷久久亚洲精品| 欧美视频中文字幕在线| 亚洲午夜久久久久久久|