天天看点

iOS开发中有关NSMutableAttributedString的使用

一. 初始化方法

-(id)initWithString:(NSString *)str;

例如:

NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:@"今天是个好天气"];
           

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

字典中存放字符串的属性名和属性值,如:

NSDictionary *attributeDict = [NSDictionary dictionaryWithObjectsAndKeys:
                                   [UIFont systemFontOfSize:],NSFontAttributeName,
                                   [UIColor redColor],NSForegroundColorAttributeName,
                                   NSUnderlineStyleAttributeName,NSUnderlineStyleSingle,nil];
    NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"今天是个好天气" attributes:attributeDict];
           

二. 使用方法

//为某一范围内文字设置多个属性
- (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         //阴影
           

四. 举例使用

NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:@"今天是个好天气"];
    [attributeStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:] range:NSMakeRange(, )];
    [attributeStr addAttribute:NSForegroundColorAttributeName value:[UIColor purpleColor] range:NSMakeRange(, )];
    [attributeStr addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(, )];
    [attributeStr addAttribute:NSUnderlineStyleAttributeName value:@() range:NSMakeRange(, )];

    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , self.view.bounds.size.width-, )];
    label.attributedText = attributeStr;
    label.font = [UIFont systemFontOfSize:];
    label.textAlignment = NSTextAlignmentCenter;
    label.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:label];
           

运行效果图:

iOS开发中有关NSMutableAttributedString的使用

好了,文章对NSMutableAttributedString的用法做了一个简单的介绍,另外在iOS中UIButton,UITextField这些控件也都可以使用这些属性。