【问题标题】:Animate UITextView Text Insertion/entry动画 UITextView 文本插入/输入
【发布时间】:2025-11-29 05:50:01
【问题描述】:

我希望通过从右侧滑动(动画)来输入 UiTextView 文本。 UITextView 中有多行,我只希望最后一行向左滑动,下一个文本从右侧输入。例如。

如果我在最后一行的屏幕上有以下文字 345,用户输入 7 345 7 这应该随着动画向左滑动 3457 然后 7 也应该滑到那里

我已尝试覆盖 drawrect 方法并在图层上执行动画,但它会将 UITextView 中的所有行向左移动/滑动,我只需要最后一行平滑滑动。现在,这个数字不知从何而来。

有什么简单的方法可以做到这一点吗?我尝试了许多技巧,例如拍摄最后一行的快照并将其作为图像添加到视图中并滑动它,但它看起来并不那么好。如果我能掌握 drawrect 的代码,我可以对其进行更改以满足我的需要。

提前感谢您的帮助。

【问题讨论】:

  • 你想什么时候实现这个动画?
  • 每当输入新文本或正在更改的文本时。请检查我提供的一个示例。让我也发一张图片。

标签: ios iphone animation uitextview


【解决方案1】:

仅使用 UITextField 是不可能的,有一个技巧,例如您有一个 UITextField 显示 345,而对于下一个字符 7,您有另一个文本字段,当用户输入时,您可以为必须获取位置的文本字段设置动画XY,在那里你可以隐藏 UITextField 并将数据添加到不可编辑的字段

【讨论】:

  • 谢谢。这是一个 UITextView,我已经尝试过这种技术,我目前正在使用这种技术的一部分(UITextField)来滑动数字“7”(在我上面的例子中)。但是,它是一个计算器,用户可以非常快速地输入数字,而我没有得到我需要的流畅流程。我一直在寻找一种在 CoreText 框架级别上进行更改的方法,以使动画和整个过程流畅且快速。
  • 嗯,你可以试试这个,但我认为只使用一个文本字段的边界是不可能的,我希望有人能帮助你理解
  • 希望如此,谢谢。我正在考虑使用其中包含多个 UiTextFields 的 UIScrollView,这将解决问题,但是需要完成很多工作,尤其是复制 UITextView 的行为(例如字体大小更改,在上面的行上移动文本一次一行已满等)。
  • 祝你好运,我猜是*.com/questions/10135796/…