2016-10-03 3 views
0

마커의 정보창에서 탭을 캡처하는 것이 가능하다는 것을 알고 있습니다. I followed the documentation here.Swift에서 InfowWindow 탭 듣기

func mapView(_ mapView: GMSMapView, didTap InfoWindowOfMarker: GMSMarker) { 
     print("You tapped infowindow") 

    } 

하지만이 모든 해고되지 않습니다

모든 Objective C에 기록 된

그래서 나는 여기에 내 코드, Swift로 변환했습니다. 이 방법의 문제점은 무엇입니까?

+0

늦은 업데이트에 대한 내 사과는 지금 ... 당신이 대리자를 설정 누락 – vaibhav

+0

를 완벽 작동하고 ANS를보고 내가 본주십시오'_'있다 귀하의 방법 안에 마크를 달아서 실행하지 않도록 할 수 있습니다. – vaibhav

답변

5

위의 일부 설정과 함께 GMSMapView 대리인을 사용해야합니다.

GMSMapViewDelegate 방법의 사용을 선언하고 self에 위임 설정 : 정보창에 수돗물을 검출

class yourClassName: UIViewController,GMSMapViewDelegate 

mapView?.delegate = self 

방법 :

func mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker) { 
    print("infowindow tapped") 
} 

방법 GMSMarker에 수돗물을 검출 :

func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool { 
    print("tapped on marker") 

    if marker.title == "myMarker"{ 
     print("handle specific marker") 
    } 
    return true 
} 

방법은 사용자 정의 정보창을 만들려면 다음

func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! { 
     let infoWindow = Bundle.main.loadNibNamed("nibName", owner: self, options: nil).first as! ClassName 
     infoWindow.name.text = "title" 
     infoWindow.address.text = "relevant address" 
     infoWindow.photo.image = UIImage(named: "imageName") 
     return infoWindow 
    } 
+0

안녕하세요. 코드는 사용자 정의 정보 용입니다. 나는 그것을 찾고 있지 않다. 죄송합니다. infomarker의 탭 이벤트를 찾고 있는데 –

+0

사용자 정의 창이 필요 없다면 여기 표시 자 변수로 작업 할 수 있습니다. – vaibhav

+0

마커뿐만 아니라 infowindow를 눌러야합니다. –