美文网首页
Swift·scrollToRow是有点坑的

Swift·scrollToRow是有点坑的

作者: 萤火虫儿飞_ | 来源:发表于2021-10-31 15:44 被阅读0次

最近在写聊天功能的时候,发现了一个很神奇的bug,困扰我半天。
就是在使用scrollToRow的时候,我想将聊天页面滚动到聊天的最底部。
如果没有新消息,直接滚,那是正常的。
但如果是发送消息或者收到消息,需要在tableview的最底部添加一个新cell。
那么问题就来了,最新的一条消息只能显示一小部分,也就是说srollToRow没有将页面正确滚动到最后一行。
于是我一顿研究。
终于找到了问题所在。
在有新消息新增的时候,会调用reloaddata()方法,然后再滚动。
然而在实际运行中,scrollToRow往往是比较着急的,它还没有等到reloaddata方法运行完成,就已经迫不及待的运行了。
因此就导致新增消息的高度还没有正确返回,就已经触发了scrollToRow方法了。
那么我们就必须保证reloaddata方法完成之后,再运行scrollToRow方法。

强制重绘

self.tableView.reloadData()
self.tableView.layoutIfNeeded()
//自定义方法
self.tableView.scrollToBottom()

相关文章

网友评论

      本文标题:Swift·scrollToRow是有点坑的

      本文链接:https://www.haomeiwen.com/subject/vnmualtx.html