NSMutableAttributedString(富文本属性可变字符串) string的N多的样式

有时候,APP上面,button,label等控件里面的text属性的样式会是很多千奇百怪的造型,本文就收集了一些常用的样式以供参考

NSFontAttributeName :字体字号
value值:UIFont类型

NSParagraphStyleAttributeName : 段落样式
value值:NSParagraphStyle类型(其属性如下
lineSpacing 行间距(具体用法可查看上面的设置行间距API)
paragraphSpacing 段落间距
alignment 对齐方式
firstLineHeadIndent 指定段落开始的缩进像素
headIndent 调整全部文字的缩进像素

NSForegroundColorAttributeName 字体颜色
value值:UIColor类型

NSBackgroundColorAttributeName 背景颜色
value值:UIColor类型

NSObliquenessAttributeName 字体粗倾斜
value值:NSNumber类型

NSExpansionAttributeName 字体加粗
value值:NSNumber类型(比例) 0就是不变 1增加一倍

NSKernAttributeName 字间距
value值:CGFloat类型

NSUnderlineStyleAttributeName 下划线
value值:1或0

NSUnderlineColorAttributeName 下划线颜色
value值:UIColor类型

NSStrikethroughStyleAttributeName 删除线
value值:1或0

NSStrikethroughColorAttributeName 删除线颜色
value值:UIColor类型

NSStrokeColorAttributeName 字体颜色
value值:UIColor类型

NSStrokeWidthAttributeName 字体描边
value值:CGFloat

NSLigatureAttributeName 连笔字
value值:1或0

NSShadowAttributeName 阴影
value值:NSShawdow类型(下面是其属性)
shadowOffset 影子与字符串的偏移量
shadowBlurRadius 影子的模糊程度
shadowColor 影子的颜色

NSTextEffectAttributeName 设置文本特殊效果,目前只有图版印刷效果可用
value值:NSString类型

NSAttachmentAttributeName 设置文本附件
value值:NSTextAttachment类型(没研究过,可自行百度研究)

NSLinkAttributeName 链接
value值:NSURL (preferred) or NSString类型

NSBaselineOffsetAttributeName 基准线偏移
value值:NSNumber类型

NSWritingDirectionAttributeName 文字方向 分别代表不同的文字出现方向
value值:@[@(1),@(2)]

NSVerticalGlyphFormAttributeName 水平或者竖直文本 在iOS没卵用,不支持竖版
value值:1竖直 0水平

此处留两个简单的使用,否则光看到属性也很摸不着头脑,而且以我下面的例子为例,每一个属性对应的value值并非一成不变,如下所示删除线的value的值为0和1,但是当我把value值设置单线,双线也是可以的(这个也是我无意中发现),所以很多东西都需要自己多试试才能获得满意的答案

前面四中都是修饰的删除线


NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"没有帐号/立即注册"];
 NSRange strRange = {0,[str length]};
 [str addAttribute:NSStrikethroughStyleAttributeName value:@0 range:strRange];
 [Btn setAttributedTitle:str forState:UIControlStateNormal];
value=0
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"没有帐号/立即注册"];
 NSRange strRange = {0,[str length]};
 [str addAttribute:NSStrikethroughStyleAttributeName value:@1 range:strRange];
 [Btn setAttributedTitle:str forState:UIControlStateNormal];
value=1
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"没有帐号/立即注册"];
NSRange strRange = {0,[str length]};
[str addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:strRange];
[Btn setAttributedTitle:str forState:UIControlStateNormal];
删除线
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"没有帐号/立即注册"];
NSRange strRange = {0,[str length]};
 [str addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleDouble] range:strRange];
 [Btn setAttributedTitle:str forState:UIControlStateNormal];
双删除线

下划线

NSMutableAttributedString *str = [[NSMutableAttributedStringalloc] initWithString:@"没有帐号/立即注册"];
NSRange strRange = {0,[str length]};
[str addAttribute:NSUnderlineStyleAttributeNamevalue:[NSNumbernumberWithInteger:NSUnderlineStyleSingle] range:strRange];
[Btn setAttributedTitle:str forState:UIControlStateNormal];
下划线

沙漠骑士

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 121,995评论 17 134
  • 在网上查找的在此记录下 在iOS开发中,有时会遇到需要添加下划线,或者设置字符串中某几个字的颜色的情况,最常见的栗...
    dongfang阅读 1,580评论 0 0
  • 转载:http://blog.csdn.net/u010330109/article/details/518821...
    F麦子阅读 2,691评论 0 3
  • 但我并不喜欢那种仿古小街,因为它给我一种轻飘飘、浮躁的感觉,也完全没有真正古镇那种底子里的深沉、历史的积淀、以及美...
    一颗小香猪阅读 95评论 0 2
  • 小丽满脸愁容都坐在我面前,像打开了装满黄连的茶壶,已经准备好了向我沸腾 。 “暖姐,你说那个同事是不是针对我啊,进...
    苏倾阅读 1,255评论 8 91