在Swift中加载其他元素后,在TableViewCell中异步加载一个元素

时间:2018-12-22 04:29:07

标签: ios swift uitableview asynchronous

我想用同步和异步(远程)数据的组合加载一个tableview。同步数据将立即加载。准备好如何获取异步数据?我要在cellforRow中放置一些东西还是视图中会出现?

现在我在表格视图单元格中设置标签值,但是数据没有更新

这是我的cellforRow代码:

internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath)
        let row = indexPath.row
        cell.textLabel?.text = Places[row].name
                Utilities.shared.getWeather(query: Places[row].name as NSString) { (response1) in
                    print(response1)
                   DispatchQueue.main.async  {
                    cell.detailTextLabel?.text = response1
                    }          
        }

        return cell
    }

1 个答案:

答案 0 :(得分:1)

当前行为在每次滚动时加载数据,在最坏的情况下,同一时刻多次加载相同的数据,因此您需要通过将逻辑放入模型中以获取所需内容并更新其内容来将其保留一次。使用它,然后重新加载表/ indexPath,描述一个示例Here