2016笔记——表情输入
2018-07-27 本文已影响5人
满庭花醉三千客
项目需求,我今天的任务是表情输入时将表情文本转为表情图片,就像 展示这样的😊,而不是[开心]。
要实时输入表情,显示表情。
我新建了一个继承于NSTextAttachment的TMTextAttachment类:
TMTextAttachment.h 文件:
![](https://img.haomeiwen.com/i711728/bf1d7143cb709079.png)
TMTextAttachment.m 文件
![](https://img.haomeiwen.com/i711728/352bd1e8cbd44b29.png)
ViewController中的代码:
![](https://img.haomeiwen.com/i711728/01551dfeee8341a1.png)
![](https://img.haomeiwen.com/i711728/c1e4cefb33a1c078.png)
![](https://img.haomeiwen.com/i711728/e42433158e7bf1d4.png)
![](https://img.haomeiwen.com/i711728/39d3a3c1c74d5639.png)
![](https://img.haomeiwen.com/i711728/dcadc552bc117346.png)
![](https://img.haomeiwen.com/i711728/f387ca32dd3e5b67.png)
![](https://img.haomeiwen.com/i711728/98eec7458224f43c.png)
![](https://img.haomeiwen.com/i711728/656d236759368a40.png)
整体的核心部分是这样:
点击表情后,取到文本,类似于这样的[微笑],然后我们在表情数组中找到对应的图片,然后我们将图片放到NSTextAttachment中,并设置attachment的表情文本属性为[微笑],然后返回attributeString。接下来我们把该attributeString放到textView中即可。要注意放到textView中后,要将光标移动一位。
在发送给服务器时,服务器无法识别NSAttributeString,我们要转回来,变成纯文本,我们在textView的attributeText中查找有没有TMTextAttachment的对象,有的话我们将它替换为attachment的表情文本。就可以得到纯文本了。
效果:
![](https://img.haomeiwen.com/i711728/6b14c61d961cec01.png)
从上到下依次是:展示事件的按钮,展示原文本的label,UITextView输入框,表情视图。
效果棒棒的~加油~