當前位置:成語大全網 - 新華字典 - 富文本設置文字顏色和字體

富文本設置文字顏色和字體

在iOS開發中,常常會有壹段文字顯示不同的顏色和字體,或者給某幾個文字加刪除線或下劃線的需求。之前在網上找了壹些資料,有的是重繪UILabel的textLayer,有的是用html5實現的,都比較麻煩,而且很多UILabel的屬性也不起作用了,效果都不理想。後來了解到NSMuttableAttstring(帶屬性的字符串),上面的壹些需求都可以很簡便的實現。

-(id)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;

字典中存放壹些屬性名和屬性值,如:

NSDictionary *attributeDict = [NSDictionarydictionaryWithObjectsAndKeys:

[UIFontsystemFontOfSize:15.0],NSFontAttributeName,

[UIColorredColor],NSForegroundColorAttributeName,

NSUnderlineStyleAttributeName,NSUnderlineStyleSingle,nil];

NSMutableAttributedString *AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@"今天天氣不錯呀" attributes:attributeDict];

-(id)initWithAttributedString:(NSAttributedString *)attester;

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

使用方法:

為某壹範圍內文字設置多個屬性

-(void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;

為某壹範圍內文字添加某個屬性

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

為某壹範圍內文字添加多個屬性

-(void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;

移除某範圍內的某個屬性

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

運行效果:

另外,其他可以設置text 的控件(如UIButton,UITextField)也都有該屬性,該文章不夠詳細,只是簡單介紹,其他效果的實現參考API中更多的屬性及使用方法。