IBAction显示纬度和经度(快速)

时间:2016-11-28 23:41:59

标签: swift swift2 uilabel core-location ibaction

我有获取用户位置的代码。我希望用户能够按下按钮并在屏幕上看到他们的坐标。我怎么做这个,因为我不能直接调用myLat或MyLong来获取按钮功能,因为它是一个位置管理器功能。为什么这段代码不起作用?

 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    // get most recient coordinate
    let myCoor = locations[locations.count - 1]

    //get lat & long
    var myLat = myCoor.coordinate.latitude
    let myLong = myCoor.coordinate.longitude
    let myCoor2D = CLLocationCoordinate2D(latitude: myLat, longitude: myLong)

    //set span
    let myLatDelta = 0.05
    let myLongDelta = 0.05
    let mySpan = MKCoordinateSpan(latitudeDelta: myLatDelta, longitudeDelta: myLongDelta)

    let myRegion = MKCoordinateRegion(center: myCoor2D, span: mySpan)
    self.LocationManager.stopUpdatingLocation()
 }




@IBAction func coo(sender: AnyObject) {
     self.coolat.text! = String(myLat)
     self.coolong.text! = String(myLong)
}

2 个答案:

答案 0 :(得分:0)

由于您的locationManager变量myLat和myLong对于该函数只是本地 ,因此只需声明两个全局变量(a)由locationManager设置,(b)然后由IBAction函数提取。 / p>

答案 1 :(得分:0)

在函数外声明 myLat myLong 。您可以在 locationManager()中更新这些值,这些值可以在标签中使用。