如何从底部加载tableView

时间:2019-03-20 15:32:57

标签: ios swift uikit tableview

我从服务器接收数据,当它们到我这里时,表被更新了,如何确保当数据到来时,表会爬到底部?

tableView.scrollToBottom(animated: true)

不工作

3 个答案:

答案 0 :(得分:0)

tableView没有方法scrollToBottom,我认为您应该在UITableView的扩展名中添加此方法

示例

import UIKit

extension UITableView {
    func scrollToBottom(animated: Bool) {
        let y = contentSize.height - frame.size.height
        setContentOffset(CGPoint(x: 0, y: (y<0) ? 0 : y), animated: animated)
    }
}

答案 1 :(得分:0)

您可以使用tableView.scrollToRow(at:at:animated:)。例如,假设您有一个在表视图中显示的字符串数组:

var items = ["1", "2", "3"]

func scrollToBottom() {
    let indexPathToReach = IndexPath(row: items.count - 1, section: 0)
    tableView.scrollToRow(at: indexPathToReach, at: .bottom, animated: true)
}

答案 2 :(得分:0)

  1. 接收数据后更新表视图数据源。
  2. 在主线程中重新加载表视图(调用reloadData()方法)或插入单元格(调用insertRows(at:with:)方法)。
  3. 滚动到主线程底部(调用scrollToRow(at:at:animated:)方法)。