ios - 重新加载数据时刷新 tableView 闪烁

标签 ios swift uitableview refresh indexoutofrangeexception

因此,由于索引超出范围问题,刷新功能使我的应用程序不断崩溃。然后我在第一次清空列表后添加了 reloadData。现在我在刷新时出现这种闪烁,因为它首先加载空列表,然后加载填充列表。我应该在哪里清空列表或如何摆脱闪烁?我正在使用 swift 3 和 Xcode 8.2.1

func getData()
{
    fetchedUsers.removeAll()
    self.userTableView.reloadData()

    //myphpfileurl
    var request = URLRequest(url: URL(string: url)!)
    request.httpMethod = "GET"

    let configuration = URLSessionConfiguration.default
    let session = URLSession(configuration: configuration, delegate: nil, delegateQueue: OperationQueue.main)

    let task = session.dataTask(with: request) { (data, response, error) in

        if (error != nil) {
            print("Error")
        }
        else{
            do{
                let fetchedData = try JSONSerialization.jsonObject(with: data!, options: .mutableLeaves) as! NSArray

                for eachFetchedUsers in fetchedData {
                    let eachUsers = eachFetchedUsers as! [String : Any]
                    let id = eachUsers["id"] as! String
                    let name = eachUsers["Nimi"] as! String
                    let email = eachUsers["Sahkoposti"] as! String
                    let company = eachUsers["Yritys"] as! String

                    self.fetchedUsers.append(Users(id : id, name: name, email : email, company: company))

                }
                self.userTableView.reloadData()
                self.refreshControl.endRefreshing()
            }
            catch{
                print("Error 2")
            }
        }
    }
    task.resume()
}

最佳答案

像这样尝试重新加载表格

DispatchQueue.main.async {
      self.userTableView.reloadData() 
      self.refreshControl.endRefreshing()
  }

关于ios - 重新加载数据时刷新 tableView 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43608034/

相关文章:

iphone - iOS 模拟器只列出最新的 iOS 版本。如何设置早期版本

swift - 我如何使用 Realm 删除数据库?

ios - AVMutableVideoComposition 无法播放

ios - 参数标签 '(URL:)' 与任何可用的重载都不匹配

ios - 在 XCode Playgrounds 中注册单元重用标识符

ios - 在 NSTextStorage 范围内崩溃

jquery - 在 iOS 上检测捏合缩放

ios - 在代码中使两个 AutoLayout 约束相等?

ios - func tableView(_ tableView : UITableView, canEditRowAt indexPath: IndexPath) 几乎符合可选要求

ios - 无法设置带有搜索栏显示颜色的搜索栏 iOS7