NSMutableAttributedString iOS 在UILabel顯示不一樣的字體和顏色(轉)

在項目開發中,咱們常常會遇到在這樣一種情形:在一個UILabel 使用不一樣的顏色或不一樣的字體來體現字符串,在iOS 6 之後咱們能夠很輕鬆的實現這一點,官方的API 爲咱們提供了UILabel類的attributedText, 使用不一樣顏色和不一樣字體的字符串,咱們能夠使用NSAttributedText 和 NSMutableAttributedText 類來實現。

現實代碼:


@interface ViewController : UIViewController
@property (nonatomic, strong) IBOutlet UILabel *attrLabel;
- (IBAction)next:(id)sender;
@end
 .m文件 在viewDidLoad方法中添加如下代碼:


self.title = @"For iOS 6 & later";
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"Using NSAttributed String"];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0,5)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(6,12)];
[str addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(19,6)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldItalicMT" size:30.0] range:NSMakeRange(0, 5)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:30.0] range:NSMakeRange(6, 12)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Courier-BoldOblique" size:30.0] range:NSMakeRange(19, 6)];
attrLabel.attributedText = str;
NSString *const NSForegroundColorAttributeName;//值爲UIColor,字體顏色,默認爲黑色。


NSString *const NSBackgroundColorAttributeName;//值爲UIColor,字體背景色,默認沒有。


NSString *const NSLigatureAttributeName;//值爲整型NSNumber,連字屬性,通常中文用不到,在英文中可能出現相鄰字母連筆的狀況。0爲不連筆;1爲默認連筆,也是默認值;2在ios 上不支持。


NSString *const NSKernAttributeName;//值爲浮點數NSNumber,字距屬性,默認值爲0。


NSString *const NSStrikethroughStyleAttributeName;//值爲整型NSNumber,可取值爲


enum {


NSUnderlineStyleNone = 0×00,


NSUnderlineStyleSingle = 0×01,


};設置刪除線。


NSString *const NSUnderlineStyleAttributeName;//同上。設置下劃線。


NSString *const NSStrokeColorAttributeName;//值爲UIColor,默認值爲nil,設置的屬性同ForegroundColor。


NSString *const NSStrokeWidthAttributeName;//值爲浮點數NSNumber。設置比畫的粗細。


NSString *const NSShadowAttributeName;//值爲NSShadow,設置比畫的陰影,默認值爲nil。


NSString *const NSVerticalGlyphFormAttributeName;//值爲整型NSNumber,0爲水平排版的字,1爲垂直排版的字。
相關文章
相關標籤/搜索