首页 > 解决方案 > 首次呈现时 tableView 不会滚动到底部

问题描述

在第一次展示我的 tableView 控制器时,我将数据加载到我的模型数组中,然后将 tableView 滚动到底部。但是 tableView 不会一直向下滚动。只是滚动到一个中间位置。使用相同方法的后续滚动始终正确滚动到底部。

我在 tableViewController 的 viewDidLoad 中有以下代码:

override func viewDidLoad() {
    super.viewDidLoad()

    let fetchRequest: NSFetchRequest<Item> = NSFetchRequest(entityName: "Item")
    do {
        let fetchedResults = try context.fetch(fetchRequest)
        if fetchedResults.count > 0 {
            self.dataArray = fetchedResults
            let indexPath = IndexPath(item: (dataArray.count - 1), section: 0)
            self.tableView.scrollToRow(at: indexPath, at: UITableViewScrollPosition.bottom, animated: false)
        }
    } catch {
        print("Could not fetch \(error)")
    }
}

我在我的 tableViewController 中使用 inputAccessoryView。此外,我正在使用 automaticDimensions,尽管我确实尝试计算每一行的高度并且它没有任何区别。

想知道为什么 tableView 滚动到任意中间位置而不是底部。在所有后续 scrollToRowAt 调用中,tableView 正确滚动到底部。

标签: iosswiftuitableview

解决方案


推荐阅读