将inputAccessoryView中的文本设置为tableView,如iOS 11消息应用

时间:2017-11-04 12:17:45

标签: ios swift animation tableview inputaccessoryview

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

我现在正在将消息输入到inputAccessoryView中的textView中。当用户按Enter键时,该消息将添加到tableView dataSource并加载到tableView。

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

1 个答案:

答案 0 :(得分:1)

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

  1. 当您键入文本并按send时,使用tableView.insertRows(at:[IndexPath],使用:UITableViewRowAnimation)将新文本气泡添加到消息表视图的末尾。这将添加气泡并向上查看tableview的动画。
  2. 同时,创建浮动气泡视图并将其放置在文本输入视图上,例如其宽度跨越文本输入视图的前沿和插入到表视图中的新聊天气泡的后缘
  3. 浮动气泡视图非常快速并同时在两个方向上进行动画处理:它的宽度会一直变化,直到它达到与tableView上新气泡相同的宽度,并且其y位置会以与添加的聊天气泡向上滚动相同的速度变化在tableView。
  4. 然后,当动画结束时,浮动气泡将被移除。
  5. 如果您将浮动气泡动画与聊天气泡真的很好地同步,那么输入文字似乎就会变成"聊天泡泡。

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