почему annotationView нельзя выбрать при перемещении анимации - PullRequest
0 голосов
/ 18 января 2019

Когда анимация выполняется, я пытаюсь щелкнуть по движущейся annotationView, но не может быть выбран, mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) не был вызван

func addMoveAnimation() {
        guard let ano = annotation as? Annotation else {
            return
        }
        animator = UIViewPropertyAnimator.init(duration: 10, curve: .linear, animations: {
            ano.coordinate = CLLocationCoordinate2D(latitude: 32.449819, longitude: 112.292726)
        })
        animator?.startAnimation()
        animator?.addCompletion({ (position) in
            print(position.des,"coor:", ano.coordinate)
        })
    }

1 Ответ

0 голосов
/ 21 января 2019

я пытаюсь добавить UITapGestureRecognizer для annotationView ,, и он действительно работает, но затем быстро изменяется на отмену удаления, и mapView (_ mapView: MKMapView, didDeselect view: MKAnnotationView) также называют

@objc func handleGes() {
        print("tap ges click")
        removeAnimation()
        let currentFrame =  (layer.presentation() as! CALayer).frame
        layer.removeAllAnimations()
        let point = CGPoint.init(x: currentFrame.midX, y: currentFrame.midY)
        let coor = mapView?.convert(point, toCoordinateFrom: mapView)
        guard let ano = annotation as? Annotation, let coordinate = coor else {
            return
        }
        ano.coordinate = coordinate
        print(ano.coordinate)
        mapView?.selectAnnotation(ano, animated: false)
    }
...