iOS开发过程中相信大家经常遇到当需要给字体,颜色,下划线等属性的时候参数是一个NSDictionary 字典
但是字典里面到底有哪些键值对了
我们把常用的总结一下
首先我们创建一个最简单的,设置一下字体和大小
我们使用是一个NSString 的方法
- (void)drawInRect:(CGRect)rect withAttributes:(NSDictionary *)attrs
来将一个字符串打印到view上 [objc] view plain copy
- -(void)drawRect:(CGRect)rect
- {
- self.backgroundColor=[UIColor whiteColor];
- NSString *attrString =@"hello word";
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30]
- }; //在词典中加入文本的字体 大小
- [attrString drawInRect:CGRectMake(20,120,320,200)withAttributes:attrs];
- }
置字体颜色
[objc] view plain copy
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor]//文字颜色
- };
效果![]()
iOS - NSAttributedString字符串属性详解
二, NSParagraphStyleAttributeName
段落格式
[objc] view plain copy
效果 :(居中)
- -(void)drawRect:(CGRect)rect
- {
- NSString *attrString =@"hello word";
- NSMutableParagraphStyle *paragraph=[[NSMutableParagraphStyle alloc]init];
- paragraph.alignment=NSTextAlignmentCenter;//居中
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor],//文字颜色
- NSParagraphStyleAttributeName:paragraph,//段落格式
- };
- [attrString drawInRect:CGRectMake(20,120,320,200)withAttributes:attrs];
- }
![]()
iOS - NSAttributedString字符串属性详解
三,NSBackgroundColorAttributeName
背景色
[objc] view plain copy
效果:
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor],//文字颜色
- NSParagraphStyleAttributeName:paragraph,//段落格式
- NSBackgroundColorAttributeName:[UIColor blueColor],//背景色
- };
![]()
iOS - NSAttributedString字符串属性详解
四, NSStrokeColorAttributeName
设置描边颜色,需要和NSStrokeWidthAttributeName 一起使用
[objc] view plain copy
效果:
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor],//文字颜色
- NSParagraphStyleAttributeName:paragraph,//段落格式
- //NSBackgroundColorAttributeName:[UIColor blueColor],//背景色
- NSStrokeWidthAttributeName:@3, //描边宽度
- NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了
- };
![]()
iOS - NSAttributedString字符串属性详解
五, NSStrikethroughStyleAttributeName
删除线
[objc] view plain copy
效果:
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor],//文字颜色
- NSParagraphStyleAttributeName:paragraph,//段落格式
- NSBackgroundColorAttributeName:[UIColor blueColor],//背景色
- NSStrokeWidthAttributeName:@3, //描边宽度
- NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了
- NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度
- };
![]()
iOS - NSAttributedString字符串属性详解
六, NSUnderlineStyleAttributeName
下划线
[objc] view plain copy
效果:
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor],//文字颜色
- NSParagraphStyleAttributeName:paragraph,//段落格式
- // NSBackgroundColorAttributeName:[UIColor blueColor],//背景色
- NSStrokeWidthAttributeName:@3, //描边宽度
- NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了
- // NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度
- NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),//下划线,值为一个枚举类型,大家可以分别试试
- };
![]()
iOS - NSAttributedString字符串属性详解
七, NSShadowAttributeName
设置阴影,他的对象是一个NSShadow的对象
[objc] view plain copy
NSShadow [objc] view plain copy
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor],//文字颜色
- NSParagraphStyleAttributeName:paragraph,//段落格式
- // NSBackgroundColorAttributeName:[UIColor blueColor],//背景色
- NSStrokeWidthAttributeName:@3, //描边宽度
- NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了
- // NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度
- NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),//下划线,值为一个枚举类型,大家可以分别试试
- NSShadowAttributeName:shadow,//设置阴影,复制为一个NSShadow 的对象
- };
效果:
- NSShadow *shadow=[[NSShadow alloc]init];
- shadow.shadowBlurRadius=5;//阴影的模糊程度
- shadow.shadowColor=[UIColor blueColor];//阴影颜色
- shadow.shadowOffset=CGSizeMake(6, 6);//阴影相对原来的偏移
![]()
iOS - NSAttributedString字符串属性详解
八, NSObliquenessAttributeName
倾斜
[objc] view plain copy
- NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小
- NSForegroundColorAttributeName:[UIColor redColor],//文字颜色
- NSParagraphStyleAttributeName:paragraph,//段落格式
- // NSBackgroundColorAttributeName:[UIColor blueColor],//背景色
- NSStrokeWidthAttributeName:@3, //描边宽度
- NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了
- // NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度
- NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),//下划线,值为一个枚举类型,大家可以分别试试
- NSShadowAttributeName:shadow,//设置阴影,复制为一个NSShadow 的对象
- NSObliquenessAttributeName:@1//倾斜程度
- };
效果: