先上效果图:
在开发中,很多时候都要适应设计给出的文本样式,文本样式丰富多彩,如果掌握了富文本化的方法,灵活运用,就能应对各种审美要求。可供自定义的属性非常之多,该篇博文主要针对一些比较常用的属性进行解说。
初始化字符串:
NSString *str = @"欢迎关注黄飞的csdn博客,探讨技术,研究理论,一起学习,一起进步。最怕你医生碌碌无为,还安慰自己平凡可贵。";
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:str];
设置文字大小
[attrStr addAttribute:NSFontAttributeName
value:[UIFont systemFontOfSize:30.0f]
range:NSMakeRange(0, 10)];
设置文字颜色
[attrStr addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(15, 10)];
添加下划线
NSStrikethroughStyleAttributeName的value: (1~7单线,依次加粗, 9~15:双线,依次加粗)
[attrStr addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInteger:NSUnderlineStyleSingle]
range:NSMakeRange(27, 10)];
[attrStr addAttribute:NSUnderlineColorAttributeName
value:[UIColor yellowColor]
range:NSMakeRange(27, 10)];
添加删除线
NSStrikethroughStyleAttributeName的value:(1~7单线,依次加粗, 9~15:双线,依次加粗)
[attrStr addAttribute:NSStrikethroughStyleAttributeName
value:@(5)
range:NSMakeRange(37, 10)];
[attrStr addAttribute:NSStrikethroughColorAttributeName
value:[UIColor greenColor]
range:NSMakeRange(37, 10)];
添加阴影
NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor purpleColor];
shadow.shadowOffset = CGSizeMake(5, 5);
shadow.shadowBlurRadius = 2.0;
[attrStr addAttribute:NSShadowAttributeName
value:shadow
range:NSMakeRange(48, 5)];
添加段落设置
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
//行间距
paragraph.lineSpacing = 10;
//段落间距
paragraph.paragraphSpacing = 20;
//对齐方式
paragraph.alignment = NSTextAlignmentLeft;
//指定段落开始的缩进像素
paragraph.firstLineHeadIndent = 30;
//调整全部文字的缩进像素
paragraph.headIndent = 10;
[attrStr addAttribute:NSParagraphStyleAttributeName
value:paragraph
range:NSMakeRange(0, [str length])];
最后添加Label,并设置富文本属性
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(60, 100, 200, 0)];
label.backgroundColor = [UIColor lightGrayColor];
//自动换行
label.numberOfLines = 0;
//设置label的富文本
label.attributedText = attrStr;
//label高度自适应
[label sizeToFit];
[self.view addSubview:label];
关于富文本还有其他很多属性可供自定义,此处不一一罗列,上述所列的方法已经可以应对大多数UI设计。如有需求,后续会继续完善!
作者:huangfei711 发表于2017/9/18 15:08:11 原文链接
阅读:263 评论:0 查看评论