[英]Displaying CLLocation in label Xcode 7 Swift 2
嘿,我都是iOS编程应用程序的新手,到目前为止还算不错。
我在将lat和lng分配给文本字段时遇到问题。 我一直在跟随一个教程,但是它被淘汰了,我发现的大多数例子都在目标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)"
}
}
注意:如果只需要显示经纬度,最好使用UILabel而不是UITextFiel
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.