gpt4 book ai didi

ios - 带有表情符号编辑的 UITextView

转载 作者:可可西里 更新时间:2023-11-01 03:58:21 26 4
gpt4 key购买 nike

我正在开发 xmpp-client 应用程序。其中一项功能是发送微笑,用户应该能够像往常一样编辑其文本。表情编辑在Viber App是我想要实现的最佳示例。

我已经尝试了三种方法来解决问题:

  • 我像通常的 UIImageView 一样创建表情符号,并使用当前插入符矩形将其作为 UITextView 的 subview 放置。我在 TextView 中使用 5 个空格作为文本占位符。有两个问题:在中间插入文本时将表情符号放在新行上(打印空格不会使插入符号移动到新行);当用户使用放大镜放置插入符号时,他可以通过表情符号(通过 5 个空格)移动插入符号,因为在此过程中未调用委托(delegate)方法。
  • 我试过EGOTextView .添加新行时插入符号位置和调整大小存在问题。使用一种线宽时会出现一些渲染伪像。
  • 我也尝试过使用 UIWebView。但是,当成为第一响应者时,根据文本大小和其他响应速度调整大小存在很大问题。

有人可以给我一些真正有效的解决方案的建议吗?

最佳答案

我不是很喜欢 UITextView/UITextInput 的 rects 和 ranges 机制,但我试着给你一个(未经测试的)建议,也许可以达到预期的结果。

内置的 iOS 表情符号是简单的字符,因此我们可以通过构建自定义字体(或扩展现有字体)来遵循相同的路径。我们有两个选择:

  • 如果你想针对 iOS 6.0(在 UIKit 类中原生支持 NSAttributedString),你可以尝试构建一个包含所有的自定义字体你需要的表情符号,并在你的 NSAttributedString 中使用它(属性字符串可以混合不同的字体、字体大小、样式等)。

  • 你可以用 iOS 5 做一些类似的事情,但是因为你不能在 UITextView 中使用 NSAttributedString(所以你是仅限于整个文本的一种字体)您应该使用将实际字符和自定义表情符号组合在一起的字体:因此您应该通过向其添加所有表情符号来扩展您想要用于键入的字体。无论如何,我不知道这是否会对许可产生影响。

否则,您总是可以更底层,使用 CoreText 实现您自己的自定义 textView ,但我认为这将是一项艰苦的工作。

关于ios - 带有表情符号编辑的 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15841152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com