我正在开发xmpp客户端应用程序。功能之一是发送微笑,用户应该能够像平常一样编辑其文字。 Viber App中的表情符号编辑是我要实现的最佳示例。
我已经尝试了三种方法来解决问题:
也许有人可以给我一些真正可行的解决方案的建议?
最佳答案
我不是很喜欢UITextView/UITextInput的调整和范围机制,但是我尝试给您一个(未经测试的)建议,也许可以达到预期的结果。
内置的iOS表情符号是简单的字符,因此我们可以通过构建自定义字体(或扩展现有字体)遵循相同的路径。
我们有两种选择:
NSAttributedString
的 native 支持),则可以尝试构建包含所需所有表情符号的自定义字体,并在NSAttributedString
中使用它(属性字符串可以混合使用不同的字体) ,字体大小,样式等)。 NSAttributedString
中使用UITextView
(因此整个文本仅限于一种字体),您应该使用将实际字符和自定义字符结合在一起的字体表情符号:因此,应通过将所有表情符号添加到其中来扩展要用于键入的字体。无论如何,我不知道这是否会对许可证产生影响。 否则,您总是可以更底层,使用CoreText实现自己的自定义textView,但是我认为这将是一项艰巨的工作。