天天看点

iOS - NSAttributedString字符串属性详解

iOS开发过程中相信大家经常遇到当需要给字体,颜色,下划线等属性的时候参数是一个NSDictionary 字典

但是字典里面到底有哪些键值对了

我们把常用的总结一下

首先我们创建一个最简单的,设置一下字体和大小

我们使用是一个NSString 的方法

- (void)drawInRect:(CGRect)rect withAttributes:(NSDictionary *)attrs

来将一个字符串打印到view上 [objc] view plain copy

  1. -(void)drawRect:(CGRect)rect  
  2. {  
  3.     self.backgroundColor=[UIColor whiteColor];  
  4.     NSString *attrString =@"hello word";  
  5.     NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30]  
  6.                            }; //在词典中加入文本的字体 大小  
  7.     [attrString drawInRect:CGRectMake(20,120,320,200)withAttributes:attrs];  
  8. }  

置字体颜色

[objc] view plain copy

  1. NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  2.                        NSForegroundColorAttributeName:[UIColor redColor]//文字颜色  
  3.                        };  
效果
iOS - NSAttributedString字符串属性详解

二, NSParagraphStyleAttributeName

段落格式

[objc] view plain copy

  1. -(void)drawRect:(CGRect)rect  
  2. {  
  3.     NSString *attrString =@"hello word";  
  4.     NSMutableParagraphStyle *paragraph=[[NSMutableParagraphStyle alloc]init];  
  5.     paragraph.alignment=NSTextAlignmentCenter;//居中  
  6.     NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  7.                            NSForegroundColorAttributeName:[UIColor redColor],//文字颜色  
  8.                            NSParagraphStyleAttributeName:paragraph,//段落格式  
  9.                            };  
  10.     [attrString drawInRect:CGRectMake(20,120,320,200)withAttributes:attrs];  
  11. }  
效果 :(居中)
iOS - NSAttributedString字符串属性详解

三,NSBackgroundColorAttributeName

背景色

[objc] view plain copy

  1. NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  2.                           NSForegroundColorAttributeName:[UIColor redColor],//文字颜色  
  3.                           NSParagraphStyleAttributeName:paragraph,//段落格式  
  4.                           NSBackgroundColorAttributeName:[UIColor blueColor],//背景色  
  5.                           };  
效果:
iOS - NSAttributedString字符串属性详解

四, NSStrokeColorAttributeName

设置描边颜色,需要和NSStrokeWidthAttributeName 一起使用

[objc] view plain copy

  1. NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  2.                        NSForegroundColorAttributeName:[UIColor redColor],//文字颜色  
  3.                        NSParagraphStyleAttributeName:paragraph,//段落格式  
  4.                        //NSBackgroundColorAttributeName:[UIColor blueColor],//背景色  
  5.                        NSStrokeWidthAttributeName:@3, //描边宽度  
  6.                        NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了  
  7.                        };  
效果:
iOS - NSAttributedString字符串属性详解

五, NSStrikethroughStyleAttributeName

删除线

[objc] view plain copy

  1. NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  2.                        NSForegroundColorAttributeName:[UIColor redColor],//文字颜色  
  3.                        NSParagraphStyleAttributeName:paragraph,//段落格式  
  4.                          NSBackgroundColorAttributeName:[UIColor blueColor],//背景色  
  5.                        NSStrokeWidthAttributeName:@3, //描边宽度  
  6.                        NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了  
  7.                        NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度  
  8.                        };  
效果:
iOS - NSAttributedString字符串属性详解

六, NSUnderlineStyleAttributeName

下划线

[objc] view plain copy

  1.  NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  2.                            NSForegroundColorAttributeName:[UIColor redColor],//文字颜色  
  3.                            NSParagraphStyleAttributeName:paragraph,//段落格式  
  4. //                           NSBackgroundColorAttributeName:[UIColor blueColor],//背景色  
  5.                            NSStrokeWidthAttributeName:@3, //描边宽度  
  6.                            NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了  
  7. //                           NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度  
  8.                            NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),//下划线,值为一个枚举类型,大家可以分别试试  
  9.                            };  
效果:
iOS - NSAttributedString字符串属性详解

七, NSShadowAttributeName

设置阴影,他的对象是一个NSShadow的对象

[objc] view plain copy

  1.     NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  2.                            NSForegroundColorAttributeName:[UIColor redColor],//文字颜色  
  3.                            NSParagraphStyleAttributeName:paragraph,//段落格式  
  4. //                           NSBackgroundColorAttributeName:[UIColor blueColor],//背景色  
  5.                            NSStrokeWidthAttributeName:@3, //描边宽度  
  6.                            NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了  
  7. //                           NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度  
  8.                            NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),//下划线,值为一个枚举类型,大家可以分别试试  
  9.                            NSShadowAttributeName:shadow,//设置阴影,复制为一个NSShadow 的对象  
  10.                            };  
NSShadow [objc] view plain copy
  1. NSShadow *shadow=[[NSShadow alloc]init];  
  2. shadow.shadowBlurRadius=5;//阴影的模糊程度  
  3. shadow.shadowColor=[UIColor blueColor];//阴影颜色  
  4. shadow.shadowOffset=CGSizeMake(6, 6);//阴影相对原来的偏移  
效果:
iOS - NSAttributedString字符串属性详解

八, NSObliquenessAttributeName

倾斜

[objc] view plain copy

  1.     NSDictionary* attrs =@{NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:30],//文本的颜色 字体 大小  
  2.                            NSForegroundColorAttributeName:[UIColor redColor],//文字颜色  
  3.                            NSParagraphStyleAttributeName:paragraph,//段落格式  
  4. //                           NSBackgroundColorAttributeName:[UIColor blueColor],//背景色  
  5.                            NSStrokeWidthAttributeName:@3, //描边宽度  
  6.                            NSStrokeColorAttributeName:[UIColor greenColor],//设置 描边颜色,和NSStrokeWidthAttributeName配合使用,设置了这个NSForegroundColorAttributeName就失效了  
  7. //                           NSStrikethroughStyleAttributeName:@1,//删除线,数字代表线条宽度  
  8.                            NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle),//下划线,值为一个枚举类型,大家可以分别试试  
  9.                            NSShadowAttributeName:shadow,//设置阴影,复制为一个NSShadow 的对象  
  10.                            NSObliquenessAttributeName:@1//倾斜程度  
  11.                            };  

效果:

iOS - NSAttributedString字符串属性详解