在标签中显示 CLLocation Xcode 7 Swift 2

Displaying CLLocation in label Xcode 7 Swift 2

嘿,我是编写 iOS 应用程序的新手,到目前为止我觉得它相当有趣..

我在将纬度和经度分配给文本字段时遇到问题。我一直在学习一个教程,但它失败了,我发现的大多数例子都在 objective C 而不是 swift.. 而 swift 中的例子并不是最好的。 .

我的ViewController如下:

import UIKit
import MapKit

class LocationVC: UIViewController, MKMapViewDelegate {

    @IBOutlet weak var map: MKMapView!
    @IBOutlet weak var latField: UITextField!
    @IBOutlet weak var lngField: UITextField!
    @IBOutlet weak var locateBtn: UIButton!
    @IBOutlet weak var saveBtn: UIButton!

    let regionRadius: CLLocationDistance = 500

    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()

        map.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
    }

    override func viewDidAppear(animated: Bool) {
        locationAuthStatus()
    }

    func locationAuthStatus() {
        if CLLocationManager.authorizationStatus() == .AuthorizedWhenInUse {
            map.showsUserLocation = true
        } else {
            locationManager.requestWhenInUseAuthorization()
        }
    }

    func centerMapOnLocation(location: CLLocation) {
        let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, regionRadius * 1, regionRadius * 1)
        map.setRegion(coordinateRegion, animated: true)
    }

    func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) {
        if let loc = userLocation.location {
            centerMapOnLocation(loc)
        }

        let latField = location.longitude
        let lngField = location.latitude
    }

}

到目前为止,地图正在移动,可以在我的设备上运行,但我不知道如何显示坐标..

如果这是一个菜鸟问题,请原谅我,但我就是无法解决这个该死的问题..

用这个替换你的 mapView(_ :,didUpdatedUserLocation:)...

func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) {
    if let loc = userLocation.location 
    {
        centerMapOnLocation(loc)

        self.latField.text = "\(loc.coordinate.latitude)"
        self.lngField.text = "\(loc.coordinate.longitude)"
    }
}

注意:如果您只需要显示 lat/lng,使用 UILabel 而不是 UITextFiel

可能是更好的主意