如何解决如何立即停止在文本字段中自动填充地址?
我已在info.plist中添加了三个权限
和弹出窗口带有三个选项。..
1)如果我单击"allow while using app"
,则需要使用当前位置地址自动填充文本字段,但是
- 如果我点击
"allow once"
,则不需要使用当前位置自动填充文本字段
在我的代码中,“允许一次”和“在使用条件时允许”两个文本字段均使用当前位置地址自动填充:
class MapViewController: UIViewController,CLLocationManagerDelegate {
let locationManager = CLLocationManager()
var latitude: String?
var logitude: String?
@IBOutlet weak var text1: UITextField!
@IBOutlet weak var text2: UITextField!
@IBOutlet weak var text3: UITextField!
let annotation = MKPointAnnotation()
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
self.locationManager.requestAlwaysAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startUpdatingLocation()
}
}
func locationManager(_ manager: CLLocationManager,didUpdateLocations locations: [CLLocation]) {
guard let _: CLLocationCoordinate2D = manager.location?.coordinate else { return }
let userLocation :CLLocation = locations[0] as CLLocation
latitude = "\(userLocation.coordinate.latitude)"
logitude = "\(userLocation.coordinate.longitude)"
let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(userLocation) { (placemarks,error) in
if (error != nil){
print("error in reverseGeocode")
}
let placemark = placemarks! as [CLPlacemark]
if placemark.count>0{
let placemark = placemarks![0]
let placemarkDictonary: NSDictionary=placemark.addressDictionary as! NSDictionary
self.text1.text=placemarkDictonary["ZIP"] as? String
self.text2.text=placemarkDictonary["City"] as? String
self.text3.text=placemarkDictonary["Street"] as? String
}
}
let center = CLLocationCoordinate2D(latitude: userLocation.coordinate.latitude,longitude: userLocation.coordinate.longitude)
let region = MKCoordinateRegion(center: center,span: MKCoordinateSpan(latitudeDelta: 0.1,longitudeDelta: 0.1))
mapView.setRegion(region,animated: true)
// Drop a pin at user's Current Location
let myAnnotation: MKPointAnnotation = MKPointAnnotation()
myAnnotation.coordinate = CLLocationCoordinate2DMake(userLocation.coordinate.latitude,userLocation.coordinate.longitude);
myAnnotation.title = "Current location"
mapView.addAnnotation(myAnnotation)
locationManager.stopUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager,didChangeAuthorization status: CLAuthorizationStatus) {
switch status {
case .denied:
print("User hates you")
case .authorizedWhenInUse:
let viewController = self.storyboard?.instantiateViewController(withIdentifier: "FinalViewController") as! FinalViewController
self.navigationController?.pushViewController(viewController,animated: true);
case .authorizedAlways:
let viewController = self.storyboard?.instantiateViewController(withIdentifier: "FinalViewController") as! FinalViewController
self.navigationController?.pushViewController(viewController,animated: true);
}
}
@IBAction func contiBtn(_ sender: Any) {
}
}
实际上,当我单击"allow once"
时,我仅需要当前位置坐标,而无需在文本字段中自动填充地址。该怎么做?
请提供代码帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。