代码之家  ›  专栏  ›  技术社区  ›  user4992124

UITableView重新加载数据循环

  •  0
  • user4992124  · 技术社区  · 6 年前

    UITableView 基于用户的位置。我在里面做这个 CLLocationManagerDelegate . 现在,发生了什么事 将继续重新加载,因此不会绘制任何内容。当我发表评论时 reloadData() print() 执行一次。在那之后,桌子一直在重新装东西。

    extension RestaurantsViewController: CLLocationManagerDelegate {
        func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
            if (locations.count > 0) {
                if (location?.coordinate.longitude != locations[0].coordinate.longitude && location?.coordinate.latitude != locations[0].coordinate.latitude) {
                    location = locations[0]
                    print("will reload table")
                    self.tableView.reloadData()
                }
            }
        }
    }
    

    有什么办法可以解决这个问题吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Enea Dume    6 年前

    一旦找到你的位置,你需要停止更新。加上这个 manager.stopUpdatingLocation() tableView

    extension RestaurantsViewController: CLLocationManagerDelegate {
        func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
            if (locations.count > 0) {
                if (location?.coordinate.longitude != locations[0].coordinate.longitude && location?.coordinate.latitude != locations[0].coordinate.latitude) {
                    location = locations[0]
                    print("will reload table")
                    self.tableView.reloadData()
                    manager.stopUpdatingLocation()
                }
            }
        }
    }