2017-02-07 8 views
-1

나는 현재이 기능을 사용하여 재사용 가능한 핀을 삭제하고 있습니다 :MKPinAnnotationView 핀이 제거 될 때 열 수있는 방법

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?{ 

    guard !(annotation is MKUserLocation) else { return nil } 
    let reuseId = "pin" 
    var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? MKPinAnnotationView 
    if pinView == nil { 
     pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 
    } 
    pinView?.pinTintColor = UIColor.orange 
    pinView?.canShowCallout = true 

    let smallSquare = CGSize(width: 30, height: 30) 
    let button = UIButton(frame: CGRect(origin: CGPoint.zero, size: smallSquare)) 
    button.setTitle("Test", for: UIControlState()) 
    button.addTarget(self, action: #selector(triggerConfirmedLocation), for: .touchUpInside) 

    pinView?.leftCalloutAccessoryView = button 
    pinView?.rightCalloutAccessoryView = button 
    return pinView 
} 

현재 사용자가 주석을 볼 수있는 핀에 활용할 수있다을; 그러나 핀을 떨어 뜨렸을 때 주석이 열려 있어야합니다.

나는이 방법을 시도 :

pinView?.isSelected = true 

첫 번째 방법은 아무것도하지 않습니다 그러나

mapView.selectedAnnotations(reuse, animated: true) 

합니다.

번째 방법 의 오차가

'비 함수 타입의 값을 호출 할 수 없습니다'[MKAnnotation] "

+0

설명 지점 : ** 콜 아웃 **보기를 열어 놓은 것처럼 보입니다. 주석보기 *는 핀입니다. –

+0

http://stackoverflow.com/questions/2193843/how-to-open-call-out-mkannotationview-programmatically-iphone-mapkit – Darkwonder

답변

1

는 다음을 사용하여 MKMapView에서이 방법을 필요

func selectAnnotation(_ annotation: MKAnnotation, animated: Bool) 

당신은 합격 할 같은 위임 재정에서 주석 :

mapView.selectAnnotation(annotation, animated: true) 

는 그냥 pinView을 반환하기 전에 전화를하면 좋을 겁니다 가다.

희망이 있습니다.