我正在开发xmpp-client app。其中一个功能是发送微笑,用户应该能够编辑类似usuall文本。 Viber App中的表情符号编辑是我想要实现的最佳示例。
我已经尝试了三种解决问题的方法:
可能有人可以给我建议真正有效的解决方案吗?
答案 0 :(得分:2)
我并没有真正进入UITextView / UITextInput的rects和range机制,但我尝试给你一个(未经测试的)建议,可能会达到预期的结果。
内置的iOS表情符号是简单的字符,因此我们可以通过构建自定义字体(或扩展现有字体)来遵循相同的路径。 我们有两种选择:
如果你想定位 iOS 6.0 (在UIKit类中对NSAttributedString
有本机支持),你可以尝试构建一个包含你需要的所有表情符号的自定义字体,并在NSAttributedString
内使用它(属性字符串可以混合不同的字体,字体大小,样式等)。
您可以使用 iOS 5 执行类似操作,但由于您无法在NSAttributedString
内使用UITextView
(因此您只能使用一种字体整个文本)您应该使用将实际字符和自定义表情符号组合在一起的字体:因此您应该通过向其添加所有表情符号来扩展要用于键入的字体。无论如何,我不知道这是否会产生许可证影响。
否则,你总是可以使用CoreText实现自己的自定义textView,但是我总是会更低级别,但我认为这将是一项艰苦的工作。