【问题标题】:Issue while scrolling to UITableView bottom滚动到 UITableView 底部时出现问题
【发布时间】:2025-12-24 07:45:06
【问题描述】:

我有一个聊天应用程序,当我按下发送按钮时,表格会重新加载新行,我正在调用滚动到底部功能以滚动到新添加的单元格。问题是我的 textview 文本直到 tableview 滚动到底部才被清空。有没有其他方法可以执行这些操作以减少时间延迟?

滚动到底部代码:

self.tableView.reloadData()
let section: Int = numberOfSections(in: self.tableView) - 1
let item: Int = tableView(self.tableView, numberOfRowsInSection:section) - 1
let lastIndexPath = IndexPath(item: item, section: section)
self.tableView.scrollToRow(at: lastIndexPath, at: .bottom, animated: false)

当我删除上面的代码时,文本视图立即被清空

问题:

【问题讨论】:

  • 您应该异步重新加载表。我认为这将防止其他问题。使用这个:DispatchQueue.main.async { self.tableView.reloadData() }
  • 您可以先隐藏文本视图,然后重新加载并滚动到底部,然后清空文本视图并取消隐藏。
  • 我在执行 scrolltobottom 之前清空 textview

标签: ios swift uitableview


【解决方案1】:

确保在主线程上调用 reloadData()。在后台线程中执行此操作通常会导致图形延迟,甚至可能导致应用程序崩溃。

另外,你在哪里清空文本视图?

【讨论】:

  • 我在调用 scrolltobottom 之前清空它