【发布时间】:2017-07-17 05:52:41
【问题描述】:
我正在尝试从位置管理器功能中提取纬度和经度,然后呈现在 UITableView 中。我希望它在位置更新时更新 TableView。但是Collect 数组还是空的?
我怎样才能做到这一点?
任何意见将不胜感激!
这是我的代码:
class ThirdViewController: UIViewController, CLLocationManagerDelegate, UITableViewDelegate, UITableViewDataSource{
@IBOutlet weak var map: MKMapView!
@IBOutlet var Tableview: UIView!
let manager = CLLocationManager()
var Collect = [Double]()
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations[0]
let span:MKCoordinateSpan = MKCoordinateSpanMake(0.01,0.01) //shows the size of map screen
let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude,location.coordinate.longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
map.setRegion(region, animated: true)
self.map.showsUserLocation = true
let lat = (location.coordinate.latitude)
let long = (location.coordinate.longitude)
Collect.append(lat)
Collect.append(long)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return Collect.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "TableCell")
cell.textLabel?.text = Collect[indexPath.row]
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
super.viewDidLoad()
print(Collect)
}
【问题讨论】:
-
每次更新后都需要重新加载表。
标签: ios swift uitableview location cllocationmanager