IOS开发之显示微博表情
作者:网络转载 发布时间:[ 2014/9/15 11:16:46 ] 推荐标签:软件开发 iOS 测试
6.数据准备工作完成,下面开始遍历资源文件找到文字对应的图片,找到后把图片名存入字典中,图片在源字符串中的位置也要存入到字典中,后把字典存入可变数组中。代码如下:
1 //用来存放字典,字典中存储的是图片和图片对应的位置
2 NSMutableArray *imageArray = [NSMutableArray arrayWithCapacity:resultArray.count];
3
4 //根据匹配范围来用图片进行相应的替换
5 for(NSTextCheckingResult *match in resultArray) {
6 //获取数组元素中得到range
7 NSRange range = [match range];
8
9 //获取原字符串中对应的值
10 NSString *subStr = [str substringWithRange:range];
11
12 for (int i = 0; i < face.count; i ++)
13 {
14 if ([face[i][@"chs"] isEqualToString:subStr])
15 {
16
17 //face[i][@"gif"]是我们要加载的图片
18 //新建文字附件来存放我们的图片
19 NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
20
21 //给附件添加图片
22 textAttachment.image = [UIImage imageNamed:face[i][@"png"]];
23
24 //把附件转换成可变字符串,用于替换掉源字符串中的表情文字
25 NSAttributedString *imageStr = [NSAttributedString attributedStringWithAttachment:textAttachment];
26
27 //把图片和图片对应的位置存入字典中
28 NSMutableDictionary *imageDic = [NSMutableDictionary dictionaryWithCapacity:2];
29 [imageDic setObject:imageStr forKey:@"image"];
30 [imageDic setObject:[NSValue valueWithRange:range] forKey:@"range"];
31
32 //把字典存入数组中
33 [imageArray addObject:imageDic];
34
35 }
36 }
37 }
7.转换完成,我们需要对attributeString进行替换,替换的时候要从后往前替换,弱从前往后替换,会造成range和图片要放的位置不匹配的问题。替换代码如下:
1 //从后往前替换
2 for (int i = imageArray.count -1; i >= 0; i--)
3 {
4 NSRange range;
5 [imageArray[i][@"range"] getValue:&range];
6 //进行替换
7 [attributeString replaceCharactersInRange:range withAttributedString:imageArray[i][@"image"]];
8
9 }
8.把替换好的可变属性字符串赋给TextView
1 //把替换后的值赋给我们的TextView
2 self.myTextView.attributedText = attributeString;
9.替换前后效果如下:
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
了解ios自动化测试要知道哪些知识?IOS配置、远程设备管理和TestAgent的启动方式移动测试工具MR是如何进行IOS设备录制以及相关脚本命令编辑操作的?MobileRunner iOS部署文档iOS单元测试iOS遭攻击频率低于安卓 但后果更严重iOS的JSON解析及用例设计iOS UnitTest单元测试(iOS)一个让我找了6小时的BugAppium iOS 10 跑起来浅谈iOS单元测试iOS UI自动化测试初探iOS APP打包分发给远程的手机测试复杂业务场景下如何进行iOS端自动化测试微信关闭iOS版公众号打赏功能,只因苹果想分成?苹果企业账号遭滥用:iOS漏洞“留出”赌博应用通道
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南