如何从当前位置滚动到tableview的最后一行,因为我尝试过这个解决方案:
self.tableView.scrollToRow(at: lastIndex.last!, at: .bottom , animated: false)
let numberOfSections = self.tableView.numberOfSections
let numberOfRows = self.tableView.numberOfRows(inSection: numberOfSections-1)
if numberOfRows > 0 {
let indexPath = IndexPath(row: numberOfRows-1, section: (numberOfSections-1))
self.tableView.scrollToRow(at: indexPath, at: .bottom, animated: animated)
}
并且它不会从当前位置滚动,而是从最顶部位置滚动。即使我当前的位置是最后一行
答案 0 :(得分:4)
待办事项
func scrollToLastRow() {
let indexPath = NSIndexPath(forRow: objects.count - 1, inSection: 0)
self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Bottom, animated: true)
}
滚动意味着,即当前位置。所以这段代码应该可行。
否则,您可以使用scrollRectToVisible
tableView.scrollRectToVisible(tableView.rectForRowAtIndexPath(indexPath),animated: true)
答案 1 :(得分:0)
试试这段代码,
this.get('model').pushObjects(...)
答案 2 :(得分:0)
当您要将tableview滚动到最后一个索引时,您必须提供更多信息,因为此代码可以正常运行
let indexPath = IndexPath.init(row: lastRow, section: 0)
customTableView.scrollToRow(at: indexPath, at: .bottom, animated: true)
更新了
最后,这是我的工作代码
@IBAction func sendBtnPressed(_ sender: UIButton) {
self.listMessages.append(messageTextView.text)
let lastIndexPath = IndexPath.init(row: self.listMessages.count-1, section: 0)
self.tableView.insertRows(at: [lastIndexPath], with: .none)
self.tableView.scrollToRow(at: lastIndexPath, at: .bottom, animated: true)
messageTextView.text = "";
}
答案 3 :(得分:0)
快速4
func scrollToLastRow() {
if CommentNameArray.count != 0 {
let indexPath = NSIndexPath(row: CommentNameArray.count - 1, section: 0)
self.CommentTableView.scrollToRow(at: indexPath as IndexPath, at: .bottom, animated: true)
}
}