Если я добавляю новую настраиваемую аннотацию и нажимаю кнопку, чтобы открыть выноску, ИЛИ щелкаю в любом месте карты, ничего не происходит. Если щелкнуть еще раз, все работает ... Есть идеи? Я просмотрел много теорий, но пока не повезло ...
@IBOutlet weak var mapView: MKMapView!
// In ViewDidLoad, I define my LongPressGestureRecognizer
let uilpgr = UILongPressGestureRecognizer(target: self, action: #selector(createNewAnnotation))
uilpgr.minimumPressDuration = 0.25
mapView.addGestureRecognizer(uilpgr)
// And here is the selector:
@objc func createNewAnnotation(_ sender: UIGestureRecognizer) {
let touchPoint = sender.location(in: self.mapView)
let coordinates = mapView.convert(touchPoint, toCoordinateFrom: self.mapView)
let heldPoint = MKPointAnnotation()
heldPoint.coordinate = coordinates
if (sender.state == .began) {
heldPoint.title = "Set Point"
heldPoint.subtitle = String(format: "%.4f", coordinates.latitude) + "," + String(format: "%.4f", coordinates.longitude)
mapView.addAnnotation(heldPoint)
}
}
Если я заменю долгое нажатие на распознаватель касаний, появится выноска, но касание создаст еще одну аннотацию ... так долгое нажатие должно быть правильным. Но как я могу обойти эту проблему, чтобы пользователь мог создать аннотацию долгим нажатием, а затем нажать один раз, чтобы получить выноску ??