- (void)viewDidLoad {
[super viewDidLoad];
/**
没有仔细研究
NSLigatureAttributeName
NSTextEffectAttributeName
NSAttachmentAttributeName
NSWritingDirectionAttributeName
NSVerticalGlyphFormAttributeName
*/
NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc]initWithString:@"Do any additional setup after loading the view,typically from a nib"];
//NSFontAttributeName是设置字体的font的,也就是什么字体和字体的大小
//12默认是Helvetica字体 12号
NSMutableDictionary * dict = [NSMutableDictionary dictionary];
dict[NSFontAttributeName] = [UIFont systemFontOfSize:30];
[attributeString addAttributes:dict range:NSMakeRange(0, 2)];
/**
设置段落的属性
NSParagraphStyleAttributeName是一个NSParagraphStyle对象
默认的是defaultParagraphStyle
*/
[attributeString addAttribute:NSParagraphStyleAttributeName value:[NSParagraphStyle defaultParagraphStyle] range:NSMakeRange(3, 3)];
/**
NSForegroundColorAttributeName设置字体颜色
默认是黑色字体
*/
[attributeString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(7, 2)];
/**
NSBackgroundColorAttributeName设置字体的背景颜色
默认是没有背景色的
*/
[attributeString addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(9, 2)];
#warning 不知道为什么没有效果
/**
NSLigatureAttributeName 连字符 是一个NSNumber类型
1的话使用默认的连体字符
0没有连体字符
我使用的没有效果
*/
[attributeString addAttribute:NSLigatureAttributeName value:@(1) range:NSMakeRange(11, 2)];
/**
NSKernAttributeName字间距,是一个NSNuber类型的
默认是0,不使用字间距
10的话就是在指定的范围内字体间的距离是10
还可以是负数哦
*/
[attributeString addAttribute:NSKernAttributeName value:@(10) range:NSMakeRange(13, 3)];
/**
NSShadowAttributeName设置阴影,是一个NSShadow对象
默认是nil
*/
NSShadow * shadow = [[NSShadow alloc]init];
shadow.shadowColor = [UIColor redColor];
shadow.shadowOffset = CGSizeMake(2, 2);
[attributeString addAttribute:NSShadowAttributeName value:shadow range:NSMakeRange(16, 4)];
/**
NSUnderlineStyleAttributeName是下划线 这个类型是NSNumber
默认是0 没有下划线
*/
[attributeString addAttribute:NSUnderlineStyleAttributeName value:@(2) range:NSMakeRange(20, 3)];
/**
NSUnderlineColorAttributeName下划线的颜色
默认是nil,若是nil这个颜色和NSForegroundColorAttributeName是一样的颜色
必须注意的是 这个的前提是有下划线的哦
*/
[attributeString addAttribute:NSUnderlineColorAttributeName value:[UIColor redColor] range:NSMakeRange(20, 3)];
/**
NSStrokeWidthAttributeName所对应的值是一个 NSNumber 对象(小数)
他改变描边宽度(相对于字体size 的百分比)
默认为 0,即不改变。正数只改变描边宽度。
负数同时改变文字的描边和填充宽度。
对于常见的空心字,这个值通常为3.0
*/
[attributeString addAttribute:NSStrokeWidthAttributeName value:@(2.5) range:NSMakeRange(23, 4)];
/**
NSStrokeColorAttributeName值对应的是一个颜色
默认是nil,若是nil,颜色和NSForegroundColorAttributeName是一致的
*/
[attributeString addAttribute:NSStrokeColorAttributeName value:[UIColor redColor] range:NSMakeRange(23, 4)];
/**
NSObliquenessAttributeName设置字体倾斜 可以是小数
默认是0,没有倾斜
*/
[attributeString addAttribute:NSObliquenessAttributeName value:@(0.5) range:NSMakeRange(27, 3)];
/**
NSExpansionAttributeName扩大几倍,
默认0 没有扩大
*/
[attributeString addAttribute:NSExpansionAttributeName value:@(0.5) range:NSMakeRange(30, 4)];
/**
NSLinkAttributeName 像网址那样
但是后面的value我点击调不到百度界面去,我用的是真机啊
*/
NSURL * url = [NSURL URLWithString:@"https://www.baidu.com"];
[attributeString addAttribute:NSLinkAttributeName value:url range:NSMakeRange(34, 10)];
/**
NSStrikethroughStyleAttributeName是指一条线从文字中间穿过 也就是删除线
默认是0 没有横线穿过
*/
[attributeString addAttribute:NSStrikethroughStyleAttributeName value:@(1) range:NSMakeRange(38, 4)];
/**
NSStrikethroughColorAttributeName 设置穿过文字的颜色
默认是nil 若为nil则,颜色和NSForegroundColorAttributeName颜色一致
*/
[attributeString addAttribute:NSStrikethroughColorAttributeName value:[UIColor redColor] range:NSMakeRange(38, 6)];
/**
NSBaselineOffsetAttributeName设置基线的偏移量 正的往上移 负的往下移
*/
[attributeString addAttribute:NSBaselineOffsetAttributeName value:@(-10) range:NSMakeRange(42, 4)];
UILabel * label2 = [[UILabel alloc]init];
label2.font= [UIFont systemFontOfSize:30];
label2.attributedText = attributeString;
label2.frame = CGRectMake(0, 100, self.view.frame.size.width, 300);
label2.numberOfLines = 0;
[self.view addSubview:label2];
}
@end