从 inputAccessoryView 到 tableView 的动画文本,如 iOS 11 条消息应用程序

animate text from inputAccessoryView to tableView like iOS 11 messages app

我有一个聊天应用程序,并且非常有兴趣实现类似于消息应用程序的动画。发送消息会使文本或媒体从 inputAccessoryView 动画化,其中消息被直接组合到显示消息的 tableView/collectionView 中。

我目前正在将消息输入 inputAccessoryView 中的 textView。当用户按下 enter 时,消息被添加到 tableView 数据源并加载到 tableView。

如何将动画外观直接从 inputAccessoryView 呈现到 tableView。

我相信这个动画是这样的:

  1. 当您键入文本并按发送键时,新的文本气泡会添加到消息的末尾 table 使用 tableView.insertRows 查看(位于:[IndexPath],使用:UITableViewRowAnimation) .这将添加气泡并使 table 视图向上移动。
  2. 同时,创建了一个浮动气泡视图并将其放置在文本输入视图上,例如其宽度跨越文本输入视图的前缘和插入到新聊天气泡的后缘table 查看。
  3. 浮动气泡视图非常快速,同时在两个方向上进行动画处理:它的宽度不断变化,直到达到与 tableView 上的新气泡相同的宽度,并且它的 y 位置以相同的速度变化随着添加的聊天气泡在 table 视图上向上滚动。
  4. 然后,当动画结束时,浮动气泡被移除。

如果您将浮动气泡动画与聊天气泡同步得非常好,输入文本 "became" 看起来就像是聊天气泡。

我相信他们使用了这个创建重叠视图 -> 动画 -> 删除重叠视图流,因为如果你在动画过程中密切注意聊天气泡,就在最后它看起来像 booble 变化有点小有点,好像漂浮的气泡没有完全对齐。