1.简单设置带属性的字符串

定义一个NSMutableAttributedString带属性的字符串

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"hello[1_1] world![哈哈][微笑]"];

设置属性

[str setAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:60], NSForegroundColorAttributeName:[UIColor redColor], NSBackgroundColorAttributeName:[UIColor greenColor], NSUnderlineColorAttributeName:[UIColor blueColor], NSUnderlineStyleAttributeName:@(NSUnderlineStyleDouble)} range:NSMakeRange(0, 5)];

显示

_label.attributedText = str;

2. 用表情代替带[]的文字(qq会话,微信会话)

定义正则表达式

NSString *pattern = @"\\[[\u4E00-\u9FA5]+\\]";

NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];

NSString *text = @"hello[1_1] world![哈哈]";

得到符合表达式的数组NSTextCheckingResult类型的

NSArray *resultArray = [regular matchesInString:text options:0 range:NSMakeRange(0, text.length)];

定义一个带附件的字符串

NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:text];

for (NSTextCheckingResult *result in resultArray) {

位置

NSRange range = result.range;

得到附件

NSTextAttachment *attach = [[NSTextAttachment alloc] init];

设置附件的图片

attach.image = [UIImage imageNamed:@"d_guzhang"];

得到附件生成的字符串

NSAttributedString *imageStr = [NSAttributedString attributedStringWithAttachment:attach];

把文字替换成表情

[attStr replaceCharactersInRange:range withAttributedString:imageStr];

}

_label.attributedText = attStr;

 

最新文章

  1. Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计
  2. html5常见问题
  3. HttpRuntime应用程序的运行时
  4. [改善Java代码]建议采用的顺序是 List<T>、List<?>、List<Object>
  5. Leaflet交流
  6. 关系型数据库工作原理-数据库查询器(翻译自Coding-Geek文章)
  7. 搭建Python自动化测试环境+元素定位
  8. Redis的安装和Jedis的使用
  9. [mybatis错误] - sql出错 org.apache.ibatis.ognl.ParseException: Encountered "!" at line 1, column 15. Was expecting one of:
  10. IntelliJ IDEA 2017版 编译器使用学习笔记(八) (图文详尽版);IDE快捷键使用;IDE代码重构(寻找修改痕迹)
  11. go make切片中len() 和 cap() 的差别
  12. spring mvc 返回乱码SpringMVC使用@ResponseBody注解返回中文字符串乱码的问题
  13. Android 开发工具类 28_sendGETRequest
  14. CountDownTimer的用法及原理
  15. PL/SQL编程-块编程
  16. [android] 练习使用ListView(二)
  17. CacheCloud+Redis Cluster 3部署
  18. Ubuntu中搭建Hadoop集群(简记)
  19. OO终章
  20. \n和\r\n的区别

热门文章

  1. Swift中构造器的继承和重写
  2. C#学习笔记之结构体
  3. POJ 1930 Dead Fraction
  4. CSS应用二
  5. HTML元素遮挡Flash之梦
  6. mysql foreign key 外键
  7. Js判断来访问者的系统
  8. C++异常处理小例
  9. 《VIM-Adventures攻略》 LEVEL 1-3
  10. android系统自带的Service原理与使用