我正在构建一个聊天应用程序。我使用UTableView
构建聊天框。当我加载聊天框屏幕时,我需要将tableview滚动到上一条未读消息的索引路径。我正在使用scrollToRowAtIndexPath
方法来执行此操作。在这种情况下,将为indexPath 0中的所有单元调用cellForRowIndexPath
。这会严重影响应用程序性能。由于我使用自动维度来表示单元格高度,因此我也无法使用setContentOffset
方法。
有没有其他方法可以将tableview滚动到所需的indexPath而不加载中间单元格?
答案 0 :(得分:0)
self.tblView.reloadData()
// First figure out how many sections there are
let lastSectionIndex = self.tblView!.numberOfSections - 1
// Then grab the number of rows in the last section
let lastRowIndex = self.tblView!.numberOfRowsInSection(lastSectionIndex) - 1
// Now just construct the index path
let pathToLastRow = NSIndexPath(forRow: lastRowIndex, inSection: lastSectionIndex)
// Make the last row visible
self.tblView?.scrollToRowAtIndexPath(pathToLastRow, atScrollPosition: UITableViewScrollPosition.None, animated: false)
答案 1 :(得分:0)
我可以想到两种方法可以达到预期的行为。