iOS 使用NSMutableAttributedString實現不同顏色尺寸文字 —— HERO部落格
阿新 • • 發佈:2019-01-08
NSMutableAttributedString:
可變屬性字串,實現一段字串中顯示不同的顏色、字型等屬性樣式。使用靈活、便捷。
方法:
//為某一範圍內文字設定多個屬性
- (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;
屬性:
- NSFontAttributeName //字型
- NSParagraphStyleAttributeName//段落格式
- NSForegroundColorAttributeName//字型顏色
- NSBackgroundColorAttributeName //背景顏色
- NSStrikethroughStyleAttributeName//刪除線格式
- NSUnderlineStyleAttributeName//下劃線格式
- NSStrokeColorAttributeName
//
- NSStrokeWidthAttributeName //刪除線寬度
- NSShadowAttributeName //陰影
下面貼上程式碼:
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor blackColor]; //建立控制元件 [self creatControl]; } - (void)creatControl { //初始化 NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"既然選擇了遠方,便只顧風雨兼程"]; //設定範圍 NSRange range1 = NSMakeRange(5, 2); NSRange range2 = NSMakeRange(11, 4); //為某一範圍內文字設定多個屬性 NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys: [UIColor yellowColor], NSForegroundColorAttributeName, [UIFont systemFontOfSize:26.0f], NSFontAttributeName, nil]; [str setAttributes:attrs range:range1]; //文字顏色 [str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:range2]; //文字大小 [str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:26.0f] range:range2]; //標題 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, [UIScreen mainScreen].bounds.size.width - 40, 30)]; label.textColor = [UIColor whiteColor]; label.font = [UIFont systemFontOfSize:19.0f]; label.attributedText = str; label.textAlignment = NSTextAlignmentCenter; [self.view addSubview:label]; } @end