项目需求,我今天的任务是表情输入时将表情文本转为表情图片,就像 展示这样的😊,而不是[开心]。
要实时输入表情,显示表情。
我新建了一个继承于NSTextAttachment的TMTextAttachment类:
TMTextAttachment.h 文件:
屏幕快照 2016-04-29 15.54.13.pngTMTextAttachment.m 文件
屏幕快照 2016-04-29 15.54.30.pngViewController中的代码:
屏幕快照 2016-04-29 15.56.26.png 屏幕快照 2016-04-29 15.56.43.png 屏幕快照 2016-04-29 15.57.10.png 屏幕快照 2016-04-29 15.58.07.png 屏幕快照 2016-04-29 15.58.23.png 屏幕快照 2016-04-29 15.58.36.png 屏幕快照 2016-04-29 15.59.22.png 屏幕快照 2016-04-29 16.00.20.png整体的核心部分是这样:
点击表情后,取到文本,类似于这样的[微笑],然后我们在表情数组中找到对应的图片,然后我们将图片放到NSTextAttachment中,并设置attachment的表情文本属性为[微笑],然后返回attributeString。接下来我们把该attributeString放到textView中即可。要注意放到textView中后,要将光标移动一位。
在发送给服务器时,服务器无法识别NSAttributeString,我们要转回来,变成纯文本,我们在textView的attributeText中查找有没有TMTextAttachment的对象,有的话我们将它替换为attachment的表情文本。就可以得到纯文本了。
效果:
Simulator Screen Shot 2016年4月29日 16.12.45.png从上到下依次是:展示事件的按钮,展示原文本的label,UITextView输入框,表情视图。
效果棒棒的~加油~
网友评论