SWift中UITextView编辑时插入自定义表情-简单的图文混编
2016-01-14 12:09
666 查看
UITextView编辑时插入自定义表情-简单的图文混编
前言
在iOS开发中,经常需要用UITextView作为编辑文本的输入控件。但是如何在编辑时插入自定义表情呢?就是像QQ,微信里面的表情
本文简单的用NSTextAttachment、NSAttributedString的特性,实现了
在UITextView中编辑文字时插入自定义表情图片
同时可以返回带有表情“替换符”的纯文本字符串。
知识点
NSAttributedString及其子类,用于显示副文本。NSTextAttachment,NSAttributedString的一种样式类,可以在文本中显示图片。
首先需要明确的是,我们的自定义表情一定是有一一对应的“标志”的,如"[哈哈]"。
就是说,为了方便处理,方便在数据库、网络传输中保存、传输带有表情图片的文本,我们必须要为每种表情取特定的“名字”,数据库中储存的、网络传输的文本就只包含这些标志名字就行,在显示的时候做对应的替换。
如:
对应的纯文本就是:"[哈哈]"
插入并显示表情图片
获取带有表情标志的文本字符串
难点
NSTextAttachment被插入到NSAttributedString中的时候,就被当成了一个字符处理!!!。就是说,只从UITextView的text中,是找不回文本里面不同的表情所对应的标志的!
解决点
我们要能遍历出当前文本中所有的表情,也就是NSTextAttachment类。我们要能知道遍历出的表情,对应的标志是什么。
遍历所有的NSTextAttachment类属性
如何绑定NSTextAttachment所表示的表情和与其对应的标志?创建子类嘛~直接在子类中增加属性,保存标志不就行了。
所以,这个时候,插入表情的代码应该就是下面这样:
最后为了方便使用我做了一下简单的封装.把插入并显示图片,获取文字封装到UITextView的分类中.把设置NSTextAttachment的内容封装到NSTextAttachment的子类中
最后封装的代码是
把设置NSTextAttachment的内容封装到NSTextAttachment的子类中
图片如下然后在UITextView的分类中这样调用就行了
写的不好.还往大神们多多指教.相互学习
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 介绍 Fedora 上的 Swift
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- iOS开发之路--微博“更多”页面
- 浅析iOS应用开发中线程间的通信与线程安全问题
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法