所以我创建的应用程序在单击按钮时,用户当前位置用于在Apples mapkit上创建注释。除了将按钮链接到将创建注释并在地图上显示注释的代码之外,我已经完成了所有工作。贝娄是我到目前为止的代码:
import UIKit
import CoreLocation
import MapKit
class ViewController: UIViewController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
@IBOutlet var Map: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) {
println("Updating Location \(newLocation.coordinate.latitude) , \(newLocation.coordinate.longitude) ")
let span = MKCoordinateSpanMake(0.0009, 0.0009)
let region = MKCoordinateRegion(center: newLocation.coordinate, span: span)
Map.setRegion(region, animated: false)
}
}
正如您将看到的,我拥有它,因此它会不断向用户显示它们的位置。我想要这个,但我也希望用户能够创建注释。
我的问题是创建注释需要什么代码?它在哪里?我对编程很新,所以我并不是完全全面的所有代码术语,所以如果你愿意(请为我愚蠢)。此外,当用户单击添加注释的按钮时,需要删除最后一个注释。我该怎么做?我在Xcode中使用Swift。
答案 0 :(得分:1)
你几乎就在那里!
首先,在代码顶部创建一个注释(仅在类中):
var annotation = MKPointAnnotation()
然后,使用newLocation.coordinate.latitude
和.longitude
创建CLLocationCoordinate2D
并将其设置为annotation.coordinate
。
然后使用map.title = "something"
和map.addAnnotation(annotation)
。
为了达到这个目的,你需要让一些变量更加全局化,但是在放置注释之前,只需使用map.removeAnnotation(annotation)
- 所以你只需要在屏幕上有一个注释一时间。