UITextView的attributedText含有NSTextAttachment对象、表情包和普通文本的可以遍历。注意:表情包和普通文本被遍历时相似单又被分开。
表情包的插入与移动光标

        NSString *str = getNotNilString([emojiStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);[self.inputTextView.textStorage insertAttributedString:[[NSAttributedString alloc] initWithString:str] atIndex:self.inputTextView.selectedRange.location];self.inputTextView.selectedRange = NSMakeRange(self.inputTextView.selectedRange.location+str.length, 0);

使用enumerateAttributesInRange遍历

        NSAttributedString *attributedText = self.inputTextView.attributedText;self.model.Body = @"";if(!isCommonUnitEmpty(self.inputTextView.text)){[attributedText enumerateAttributesInRange:NSMakeRange(0, attributedText.length) options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(NSDictionary *attributes, NSRange range, BOOL *stop) {@strongify(self);DYTextAttachment *attachment = [attributes objectForKey:@"NSAttachment"];if(attachment){NSLog(@"attributes:%@, range.location:%d,range.length:%d,attachment.description:%@ attachment:%@,", attributes, range.location,range.length,attachment.description, attachment);if([attachment isKindOfClass:[DYTextAttachment class]] && !isCommonUnitEmptyString(attachment.dataFilePath)){if(attachment.dyFileType == DYFileTypeImage){self.model.Body = [NSString stringWithFormat:@"%@<img src=\"%@\"/>", self.model.Body, attachment.dataFilePath];}else if(attachment.dyFileType == DYFileTypeVideo){self.model.Body = [NSString stringWithFormat:@"%@<p><video src=\"%@\" controls=\"controls\" style=\"max-width:100%%\"></video></p>", self.model.Body, attachment.dataFilePath];}}}else{NSLog(@"attributes:%@, range.location:%d,range.length:%d, [self.inputTextView.text substringWithRange:range]:%@", attributes, range.location,range.length, [self.inputTextView.text substringWithRange:range]);NSString *inputStr = [self.inputTextView.text substringWithRange:range];if(!isCommonUnitEmptyString(inputStr)){self.model.Body = [NSString stringWithFormat:@"%@%@", self.model.Body, inputStr];}}}];}

UITextView的attributedText含有NSTextAttachment对象、表情包和普通文本的遍历与组装h5字符串相关推荐

  1. Python:网络爬虫爬取某表情包网站

    Python:网络爬虫爬取某表情包网站 参考: 爬虫基础知识点汇总(html文件基础和4个常用库 超级详细长文预警) [爬虫教程]吐血整理,最详细的爬虫入门教程~ HTML的简单介绍 HTML的全称为 ...

  2. python恶搞表情包-哈哈!我用 Python 把你的朋友变成表情包了

    点击上方"Python学习与数据挖掘",关注公众号 设为"星标",好文章不错过! 来自:csdn | 代码已上传,文末附下载方式 在日常生活中,我们经常会存取一 ...

  3. python恶搞表情包-用 Python 把你的朋友变成表情包

    实现步骤 导入朋友的照片(前景照片); 处理前景照片(缩放.旋转,填充); 导入熊猫头照片(背景照片); 外汇返佣将前景和背景拼接起来形成表情包; 在表情包下面添加文字. Python 实现 1.导入 ...

  4. python 将图片旋转多个角度_【技术】把你的朋友变成表情包?Python:So easy

    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析 源自:Python学习与数据挖掘 在日常生活中,我们经常会存取一些朋友们的丑照,在这个项目中, ...

  5. python 图片背景前景分离_【绝了】用 Python 把朋友头像变表情包!

    正文 在日常生活中,我们经常会存取一些朋友们的丑照,在这个项目中,我们以萌萌哒的熊猫头作为背景,然后试着在背景图上加入朋友们的照片,效果如下图所示. 实现步骤 导入朋友的照片(前景照片): 处理前景照 ...

  6. python画害羞的表情_用Python把你的朋友变成表情包

    一.项目说明 在日常生活中,我们经常会存取一些朋友们的丑照,在这个项目中,我们以萌萌哒的熊猫头作为背景,然后试着在背景图上加入朋友们的照片.效果如下图所示: 二.实现步骤 导入朋友的照片(前景照片): ...

  7. QQ表情包,动态的那种

    QQ 表情包,动态的那种. 做个 H5 版本的智能咨询,用到 qq 的表情包,被腾讯的产品经理鄙视了一顿,嫌弃有点模糊. 嫌弃也就算了,你们自己自家的东西,又不提供一套来. 只好人工去 QQ 里一个个 ...

  8. 用 Python 把你的朋友变成表情包

    文章目录 项目说明 实现步骤 Python 实现 1.导入需要的库 2.绘图函数 3.导入前景照片 4.等比例缩放前景照片 5.对前景照片进行二值化处理 6.提取出感兴趣区域 7.旋转图片 8.将一些 ...

  9. AI表情包生成器来了!给AI喂了96万个表情包文案,做出的图能接地气吗?

    作者:牛婉杨 在这个一言不合就斗图的年代,表情包已经成为了人人必需的"装备". 最近,不少网友就发现一位外国友人做了个AI表情包生成器,坦白讲这个生成器依然逃不过"沙雕& ...

最新文章

  1. 重新格式化NameNode后,DataNode启动不起来问题解决
  2. common.php下载,插件common.php全局函数文件
  3. lamp架构-访问控制-禁止php解析、屏蔽curl命令访问
  4. 机器学习——支持向量机SVM实例(兵王问题,SVM求解步骤以及思路,不求解不编程)
  5. IOS之学习笔记二(块)
  6. yaml报错TypeError: load() missing 1 required positional argument: ‘Loader‘
  7. Enum,Int,String的互相转换 枚举转换
  8. 离散考试题计算机,离散数学试题及答案_离散数学试题库_离散数学试卷及答案...
  9. 用渐变工具绘制七色彩虹(每天一个PS小项目)
  10. 计算机没有usb硬件,电脑开机启动项中没有USB设备启动项怎么办?
  11. P1782 旅行商的背包[混合背包,优化,数据大]
  12. pcm数据编码成为aac格式文件(可以在酷狗播放)
  13. VSCode彩虹屁:你就是因为想太多如果,所以才交不到girlFriend吧
  14. 电影《忠犬八公》观后感
  15. 诺基亚Q4净利润5.64亿美元 同比增54%
  16. 网络安全——文件上传
  17. windows下合并多个txt,文件
  18. Android 集成QQ登录,获取头像与昵称
  19. PPP协议和PPPoE协议
  20. 【ACWing】1540. 主导颜色

热门文章

  1. java小居来一趟不白学
  2. 华为以后的手机都装鸿蒙系统,华为明年第一款手机用自己的鸿蒙系统,华为P50系列你期待吗?...
  3. 比较深奥的爱情寓言故事
  4. AI绘图教程【全面】
  5. GIT命令与图形化操作
  6. MindNote 思维导图笔记本
  7. 微信JS-SDK PHP Demo JS接口安全域名 自定义分享接口 jsapi_ticket
  8. 教你炒股票7:给-赚-了指数亏-了-钱的一些忠告
  9. react 元素延迟加载_React中的延迟加载路线
  10. leetcode刷题优质题解(C++,Python,Go语言)