2017-05-02 7 views
0

MKMapView로지도 앱을 만들고 있는데, MKAnnotationView의 하위보기에서 상호 작용을 수행 할 수 없습니다. MKAnnotationView의 하위보기로 UIButton이 작동하지 않습니다.

은 내가 MKAnnotationView의 주요 하위 뷰 같은 UIView의 클래스가 있고 난이 같은 다른 하위 뷰를하는있는 UIButton 가지고 거기에 :

let button = UIButton(type: .infoLight) 
button.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 
button.addTarget(self, action: #selector(self.buttonTapped(sender:)), for: UIControlEvents.touchUpInside) 
//self.bringSubview(toFront: button) 
//button.isUserInteractionEnabled = true 
self.addSubview(button) 

가 (주석 처리 된 줄 도움하지 않는 것)를

그런 다음 클래스의 탭 기능은 다음과 같습니다 다음 buttonTapped() 메소드가 실행되지 왜

func buttonTapped(sender: UIButton!) { 
    print("button tapped:", sender) 
} 

어떤 생각?

답변

0

mapkit이지도에 버튼을 추가하면지도가 래스터 화되어보기로 추가됩니다. 따라서 '버튼'은 더 이상 이벤트를 터치하지 않습니다.

tapGestureRecognizer를 사용하여 구현할 수 있습니다.

mapkit이 다음 함수에서보기를 요청할 때. func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?

탭 제스처가 추가 된 Uiview를 사용하십시오.

+0

감사합니다. – Hexagons