常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求。

  使用富文本NSMuttableAttstring(带属性的字符串),上面的一些需求都可以很简便的实现。

  1. 实例化方法和使用方法

  实例化方法:

  使用字符串初始化

  1. - (id)initWithString:(NSString *)str;

例如:

  1. NSMutableAttributedString *AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@"今天天气不错呀"];

字典中存放一些属性名和属性值,如:

  1. 1 NSDictionary *attributeDict = [NSDictionarydictionaryWithObjectsAndKeys:
  2. 2 [UIFontsystemFontOfSize:15.0],NSFontAttributeName,
  3. 3 [UIColorredColor],NSForegroundColorAttributeName,
  4. 4 NSUnderlineStyleAttributeName,NSUnderlineStyleSingle,nil];
  5. 5 NSMutableAttributedString *AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@"今天天气不错呀" attributes:attributeDict];

 

 

使用NSAttributedString初始化,跟NSMutableString,NSString类似

  1. - (id)initWithAttributedString:(NSAttributedString *)attester;

使用方法:

为某一范围内文字设置多个属性

  1. - (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;

为某一范围内文字添加某个属性

  1. - (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;

为某一范围内文字添加多个属性

  1. - (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;

移除某范围内的某个属性

  1. - (void)removeAttribute:(NSString *)name range:(NSRange)range;

 

2.     常见的属性及说明

  1. NSFontAttributeName //字体
  2. NSParagraphStyleAttributeName //段落格式
  3. NSForegroundColorAttributeName //字体颜色
  4. NSBackgroundColorAttributeName //背景颜色
  5. NSStrikethroughStyleAttributeName//删除线格式
  6. NSUnderlineStyleAttributeName //下划线格式
  7. NSStrokeColorAttributeName //删除线颜色
  8. NSStrokeWidthAttributeName//删除线宽度
  9. NSShadowAttributeName //阴影

 

3.   使用实例

  1. UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 30)];
  2. testLabel.backgroundColor = [UIColor lightGrayColor];
  3. testLabel.textAlignment = NSTextAlignmentCenter;
  4. NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"今天天气不错呀"];
  5. [AttributedStr addAttribute:NSFontAttributeName
  6. value:[UIFont systemFontOfSize:16.0]
  7. range:NSMakeRange(2, 2)];
  8. [AttributedStr addAttribute:NSForegroundColorAttributeName
  9. value:[UIColor redColor]
  10. range:NSMakeRange(2, 2)];
  11. testLabel.attributedText = AttributedStr;
  12. [self.view addSubview:testLabel];

 

其他可以设置text 的控件(如UIButton,UITextField)也都有该属性,该文章不够详细,只是简单介绍,其他效果的实现参考API中更多的属性及使用方法。

版权声明:本文为jw-blog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jw-blog/p/5088852.html