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

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:41:08
字體:
來源:轉載
供稿:網友

前言

在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

總結

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


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色樱桃影院亚洲精品影院| 日韩免费在线电影| 国产美女精品免费电影| 日本高清+成人网在线观看| 成人免费午夜电影| 欧美精品激情在线| 美女扒开尿口让男人操亚洲视频网站| 91精品国产91久久久久久吃药| 在线看日韩欧美| 精品成人乱色一区二区| 亚洲国产欧美精品| 久久人人爽人人| 热99在线视频| 欧美日韩在线观看视频| 亚洲天堂av综合网| 成人妇女免费播放久久久| 亚洲福利精品在线| 91成人在线视频| 久久久国产视频91| 久久男人av资源网站| 精品美女永久免费视频| 亚洲视频欧洲视频| 欧美日韩激情视频8区| 国产成人短视频| 亚洲欧洲自拍偷拍| 欧美一区二区三区四区在线| 亚洲国产私拍精品国模在线观看| 色www亚洲国产张柏芝| 欧美亚洲日本网站| 久久久久久免费精品| 尤物tv国产一区| 91深夜福利视频| 精品视频在线观看日韩| 国产偷国产偷亚洲清高网站| 国产女人18毛片水18精品| 热re99久久精品国产66热| 九九热r在线视频精品| 亚洲国产精品久久久久秋霞蜜臀| 日韩精品免费综合视频在线播放| 日韩中文字幕不卡视频| 日韩欧美极品在线观看| 国产精品日韩专区| 亚洲国产高清福利视频| 日本精品视频在线播放| 九九热这里只有在线精品视| 久久国产精品久久国产精品| 日韩美女中文字幕| 国产精品视频1区| 国产精品中文字幕在线| 国产一区二区三区在线观看网站| 精品亚洲国产视频| 伊人久久久久久久久久久| 91精品国产综合久久久久久久久| 久久亚洲国产精品成人av秋霞| 日韩av影视综合网| 青青草原一区二区| 2019最新中文字幕| 色噜噜狠狠狠综合曰曰曰88av| 日韩激情在线视频| 色婷婷综合久久久久中文字幕1| 91精品国产乱码久久久久久久久| 日韩中文综合网| 成人免费福利在线| 亚洲欧美日韩精品久久| 欧美激情第1页| 成人免费观看网址| 国产99久久精品一区二区| 久久久久一本一区二区青青蜜月| 欧美在线观看视频| 亚洲偷欧美偷国内偷| 最近免费中文字幕视频2019| 久久精品青青大伊人av| 国产v综合v亚洲欧美久久| 91亚洲精品在线观看| 少妇高潮久久77777| 日韩精品久久久久久福利| 亚洲a级在线播放观看| 日韩美女主播视频| 国产精品成人一区二区| 中文字幕亚洲二区| 欧美成人精品在线视频| 欧美激情图片区| 国产伦精品一区二区三区精品视频| 国产丝袜一区二区三区免费视频| 国内精品小视频在线观看| 久久91亚洲精品中文字幕| 911国产网站尤物在线观看| 亚洲男人天堂2019| 日韩性生活视频| 国产精品草莓在线免费观看| 国产日韩在线观看av| 亚洲综合一区二区不卡| 国产视频精品va久久久久久| 久久中国妇女中文字幕| xvideos国产精品| 亚洲人成在线观| 永久免费毛片在线播放不卡| 欧美亚洲视频在线观看| 性欧美视频videos6一9| 亚洲欧美国产一区二区三区| 国产精品丝袜久久久久久高清| 国产午夜精品一区理论片飘花| 国产成人黄色av| 日韩视频一区在线| 成人免费网站在线看| 亚洲第五色综合网| 欧美精品成人91久久久久久久| 久久久免费精品视频| 伊人精品在线观看| 91国产精品视频在线| 亚洲女人被黑人巨大进入| 性欧美在线看片a免费观看| 欧美xxxwww| 亚洲一区亚洲二区亚洲三区| 久久久久久午夜| 国产日韩欧美在线播放| 国产精品成人久久久久| 国产精品va在线播放| 国产精品网红福利| 日韩一区二区久久久| 激情久久av一区av二区av三区| 中文精品99久久国产香蕉| 欧洲一区二区视频| 高清一区二区三区日本久| 亚洲一区中文字幕在线观看| 日韩高清欧美高清| 日本一区二区三区在线播放| 亚洲а∨天堂久久精品喷水| 中文字幕亚洲一区| 尤物yw午夜国产精品视频| 欧美日韩精品在线| 日韩精品在线观看网站| 免费91麻豆精品国产自产在线观看| 2019精品视频| 日韩精品在线观看一区二区| 日韩欧美精品中文字幕| 91精品久久久久久久久不口人| 国产精品久久精品| 日韩大胆人体377p| 久久艳片www.17c.com| 青青草原成人在线视频| 亚洲欧美激情精品一区二区| 国产有码在线一区二区视频| 久久天天躁夜夜躁狠狠躁2022| 欧美自拍大量在线观看| 97激碰免费视频| 亚洲精品国产综合区久久久久久久| 亚洲精品视频网上网址在线观看| 欧美午夜宅男影院在线观看| 亚洲电影免费观看高清完整版在线观看| 欧美日韩在线看| 国产精品福利小视频| 欧美放荡办公室videos4k| 欧美日韩中文字幕日韩欧美| 午夜免费在线观看精品视频| 成人免费黄色网| 欧美性猛交xxxxx水多| 亚洲视频在线看| 欧美激情综合色综合啪啪五月| 97国产成人精品视频| 色综合视频一区中文字幕| 国语自产精品视频在线看抢先版图片| 欧美特黄级在线| 国产日韩在线亚洲字幕中文|