我可以使用"first“按钮在MapView上添加注释,但我想添加一个新选项,它允许使用”第二“按钮删除注释。添加注释没有问题,但我不能从map视图中删除它。有人能帮我吗?
这是我的代码:
class ViewController: UIViewController {
@IBOutlet weak var mapViewOutlet: MKMapView!
var lm = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
self.lm.requestAlwaysAuthorization()
mapViewOutlet.showsUserLocation = true
mapViewOutlet.userTrackingMode = MKUserTrackingMode.Follow
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// HERE IS FUNCTION ADDANNOTATION
@IBAction func tagMyCar(sender: UIButton) {
let coordinate = lm.location?.coordinate
let CarCoordinates = CarAdnotaion(coordinate: coordinate!)
mapViewOutlet.addAnnotation(CarCoordinates)
let region = CLCircularRegion(center: coordinate!, radius: 5, identifier: "My Car")
region.notifyOnEntry = true
region.notifyOnExit = true
lm.startMonitoringForRegion(region)
}
// HERE IS FUNCTION REMOVEANNOTATION
@IBAction func removeAnnotationfromMap(sender: AnyObject) {
let region = CLCircularRegion(center: (lm.location?.coordinate)!, radius: 5, identifier: "Mój samochód")
self.mapViewOutlet.removeAnnotation(CarAdnotaion(coordinate: (lm.location?.coordinate)!))
lm.stopMonitoringForRegion(region)
}
}发布于 2015-11-17 23:13:38
我认为问题在于:
self.mapViewOutlet.removeAnnotation(CarAdnotaion(coordinate: (lm.location?.coordinate)!))您正在删除刚才在这个状态器中创建的注释。相反,将let CarCoordinates向上移动(并在开头给它更合理的名称和小写字母)。然后调用该对象上的removeAnnotation。
发布于 2015-11-18 18:46:46
我有办法解决我的问题。它起作用了!
import UIKit
import CoreLocation
import MapKit
class ViewController: UIViewController {
@IBOutlet weak var mapViewOutlet: MKMapView!
let lm = CLLocationManager()
var carAnnotation: CarAnnotationOnMap?
var region: CLCircularRegion?
override func viewDidLoad() {
super.viewDidLoad()
self.lm.requestAlwaysAuthorization()
mapViewOutlet.userTrackingMode = MKUserTrackingMode.Follow
mapViewOutlet.showsUserLocation = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// ADD ANNOTATION ON MAP
@IBAction func tagMyCar(sender: UIButton) {
let coordinates = lm.location?.coordinate
carAnnotation = CarAnnotationOnMap(coordinates: coordinates!)
region = CLCircularRegion(center: coordinates!, radius: 5, identifier: "My Zone")
region!.notifyOnEntry = true
region!.notifyOnExit = true
self.lm.startMonitoringForRegion(region!)
mapViewOutlet.addAnnotation(carAnnotation!)
}
// REMOVE ANNOTATION FROM MAP
@IBAction func removePinFromMyCar(sender: AnyObject) {
self.lm.stopMonitoringForRegion(region!)
mapViewOutlet.removeAnnotation(carAnnotation!)
}
}https://stackoverflow.com/questions/33767833
复制相似问题