У меня есть UIViewController, который содержит MKMapView. Я добавил аннотацию на моем текущем местоположении с помощью следующего кода:Как перетащить аннотацию с перетаскиванием MKMapView? (iOS)
import UIKit
import MapKit
class LocationViewController: UIViewController , MKMapViewDelegate ,CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
var locationManager: CLLocationManager!
let regionRadius: CLLocationDistance = 1000
var token: dispatch_once_t = 0
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
func centerMapOnLocation(location: CLLocation) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
regionRadius * 2.0, regionRadius * 2.0)
mapView.setRegion(coordinateRegion, animated: true)
}
func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) {
if ((userLocation.coordinate.latitude != 0.0) && (userLocation.coordinate.longitude != 0.0)) {
dispatch_once(&token) {
self.centerMapOnLocation(userLocation.location!)
let annotation = MapPin(title: "This Location", locationName: "Test", discipline: "None", coordinate: userLocation.coordinate)
mapView.addAnnotation(annotation)
}
}
}
Я хотел бы сделать аннотацию шаг как просмотр карты перемещаются или тащил пользователь. Например, мое текущее местоположение - это Новый Олбани, и если я перетащил карту, то аннотация не изменит ее сцену, плавающую в воздухе, пока я не выйду на вершину Pontotoc, поэтому точки аннотации, которые я выпустил. Я был бы признателен за любые хиты или хорошие уроки на MapKit.
http://i.stack.imgur.com/xGK4R.jpg http://i.stack.imgur.com/4MQIR.jpg
Я нашел ваш пример кода полезным. Ваш код реализует перетаскиваемый штифт аннотации, в котором вам нужно выбрать контакт, чтобы перетащить его. Я пытаюсь реализовать, что штифт автоматически перетаскивается, когда карта перетаскивается в центр смещенной карты. – user2768374
Я понимаю, что вы хотите сделать, но я не могу найти решение ... –
Я добавил альтернативное решение для моего ответа. удачи! –