富文本
- ios開發(fā)中我們避免不了要自定義一些控件,修改文字的顏色,下劃線,刪除線等等,所以ios提供了兩個(gè)類供我們使用NSAttributedstring和NSMutableAttributedString,被叫做富文本,
- 只要是可以顯示文字的控件大都有這個(gè)屬性,例如UIButton,UILabel,UITextView,UITextField等等,
- NSAttributedString的創(chuàng)建方式很簡單,可以有多種方式,但是如果想要改變屬性的話,就只能用下面的方法了
//NSAttributedString只有這個(gè)方法可以修改attributes,修改attributes一定要?jiǎng)?chuàng)建一個(gè)字典去設(shè)置好想改的東西
NSDictionary *dic = [NSDictionary dictionary];
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"" attributes:dic];
- 實(shí)際情況下我們用NSMutableAttributedString的時(shí)候會多一些,因?yàn)樗墓δ芨鼜?qiáng)大
//
NSMutableAttributedString *placehoder = [[NSMutableAttributedString alloc] initWithString:@"手機(jī)號"];
[placehoder setAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]} range:NSMakeRange(0, 1)];
[placehoder setAttributes:@{
NSForegroundColorAttributeName : [UIColor yellowColor],
NSFontAttributeName : [UIFont systemFontOfSize:30]
} range:NSMakeRange(1, 1)];
[placehoder setAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]} range:NSMakeRange(2, 1)];
self.phoneField.attributedPlaceholder = placehoder;
- 我們NSAttributedString進(jìn)去會發(fā)現(xiàn)方法很少,而大多數(shù)方法集中在NSMutableAttributedString中
//一般我們修改屬性就會滿足我們大部分需求,所以下面的方法是最常用的
- (void)setAttributes:(nullable NSDictionary<NSString *, id> *)attrs range:(NSRange)range;
- (void)addAttributes:(NSDictionary<NSString *, id> *)attrs range:(NSRange)range;
//設(shè)置完了之后,可能某一天我們不想要某個(gè)屬性了,就需要?jiǎng)h除,添加,修改等等,而我們實(shí)際操作的是富文本,
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;
- (void)removeAttribute:(NSString *)name range:(NSRange)range;
- (void)insertAttributedString:(NSAttributedString *)attrString atIndex:(NSUInteger)loc;
- (void)appendAttributedString:(NSAttributedString *)attrString;
NSFontAttributeName 設(shè)置字體屬性,默認(rèn)值:字體:Helvetica(Neue) 字號:12
NSForegroundColorAttributeNam 設(shè)置字體顏色,取值為 UIColor對象,默認(rèn)值為黑色
NSBackgroundColorAttributeName 設(shè)置字體所在區(qū)域背景顏色,取值為 UIColor對象,默認(rèn)值為nil, 透明色
NSLigatureAttributeName 設(shè)置連體屬性,取值為NSNumber 對象(整數(shù)),0 表示沒有連體字符,1 表示使用默認(rèn)的連體字符
NSKernAttributeName 設(shè)定字符間距,取值為 NSNumber 對象(整數(shù)),正值間距加寬,負(fù)值間距變窄
NSStrikethroughStyleAttributeName 設(shè)置刪除線,取值為 NSNumber 對象(整數(shù))
NSStrikethroughColorAttributeName 設(shè)置刪除線顏色,取值為 UIColor 對象,默認(rèn)值為黑色
NSUnderlineStyleAttributeName 設(shè)置下劃線,取值為 NSNumber 對象(整數(shù)),枚舉常量 NSUnderlineStyle中的值,與刪除線類似
NSUnderlineColorAttributeName 設(shè)置下劃線顏色,取值為 UIColor 對象,默認(rèn)值為黑色
NSStrokeWidthAttributeName 設(shè)置筆畫寬度,取值為 NSNumber 對象(整數(shù)),負(fù)值填充效果,正值中空效果
NSStrokeColorAttributeName 填充部分顏色,不是字體顏色,取值為 UIColor 對象
NSShadowAttributeName 設(shè)置陰影屬性,取值為 NSShadow 對象
NSTextEffectAttributeName 設(shè)置文本特殊效果,取值為 NSString 對象,目前只有圖版印刷效果可用:
NSBaselineOffsetAttributeName 設(shè)置基線偏移值,取值為 NSNumber (float),正值上偏,負(fù)值下偏
NSObliquenessAttributeName 設(shè)置字形傾斜度,取值為 NSNumber (float),正值右傾,負(fù)值左傾
NSExpansionAttributeName 設(shè)置文本橫向拉伸屬性,取值為 NSNumber (float),正值橫向拉伸文本,負(fù)值橫向壓縮文本
NSWritingDirectionAttributeName 設(shè)置文字書寫方向,從左向右書寫或者從右向左書寫
NSVerticalGlyphFormAttributeName 設(shè)置文字排版方向,取值為 NSNumber 對象(整數(shù)),0 表示橫排文本,1 表示豎排文本
NSLinkAttributeName 設(shè)置鏈接屬性,點(diǎn)擊后調(diào)用瀏覽器打開指定URL地址
NSAttachmentAttributeName 設(shè)置文本附件,取值為NSTextAttachment對象,常用于文字圖片混排
NSParagraphStyleAttributeName 設(shè)置文本段落排版格式,取值為 NSParagraphStyle 對象
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。