Mapbox iOS SDK (route-me) 및 iOS MapKit으로 무엇을하고 싶은지 확인하기 위해 빠른 프로토 타입 프로젝트를 진행하고 있습니다.모든 하위 뷰에 이벤트/제스처를 전달할 수 있습니까?
MapBox의 오프라인 기능 (및 클러스터링과 같은 추가 기능)과 함께 두 세계의 장점을 모두 갖추고 있지만 iOS지도 유형을 계속 사용할 수 있는지 확인하고 싶습니다. 지도와 아이오와지도가 함께 작동하지 않는다는 것을 발견 한 후 (또는 SO에 대한 도움을받은 후), 당신은 하나 또는 다른 것을 선택하게됩니다. iOS지도 위에 RMMapView (지도 상자 맵) 디렉토리를 배치하면 어떻게 될지 궁금해지기 시작했습니다. 그런 다음 iOS 맵을보고 싶을 때 RMMapViews 기본 맵을 투명하게 설정하여 바로 아래에있는 iOS 맵이 표시되도록 할 수 있습니다. 원하는 경우 다시 두 배로 iOS지도를 사용할 수 있지만 iOS지도로 전환 할 때 마커를 다시 그릴 필요가 없도록지도 상자 마커를 유지할 수도 있습니다.
는 기본적으로 나는 기본보기 (슈퍼 뷰)를 작성 위에 RMMapView으로,이 파단 (MKMapView 및 RMMapView)을 추가했습니다. 이미 RMMapView의 기본 레이어를 투명하게 만드는 방법을 알아 냈습니다. RMMarkers를 추가 할 수도 있으며, MKMapView 위에 멋지게 배치 할 수 있습니다.제 문제는 터치 이벤트와 제스처입니다. 이 작업을 수행 할 경우 RMMapView에서 발생하는 모든 접촉과 제스처가 필요하지만 여전히 RMMapView에서 발생하지만 MKMapView에서도 발생합니다. I.E. RMMapView의 기본지도가 투명하지만 해당보기에 마커가있는 경우지도를 스크롤 할 때 MKMapView와 함께 RMMapView를 움직여야합니다 (마커가 움직 이도록). 내가 시도 무엇
:
- 무시 그러나 hitTest. 이 접근 방식의 문제점은 일단 터치하면 반환하는보기에서만 터치가 작동한다는 것입니다. RMMapView와 MKMapView 모두에서 터치가 발생해야합니다.
- 내 슈퍼 뷰에서 제스처 인식기를 만들었습니다. 그런 다음 두 하위보기 모두에 터치를 전달하려고합니다. 실제로, 이것이 실제로 작동 할지도 모르다. 하지만 제가 말할 수있는 것에서 몇 가지 문제가 있습니다. 처음에는 두 맵보기 모두 맨 위에 스크롤보기가 있으므로 MKMapView에 터치를 전달하면 RMMapView가 작동하지 않습니다. 나는 각지도 스크롤보기에 터치를 전달해야한다고 생각합니다.
그래서 나는 1이 작동하지 않을 것이라고 생각하고, 2를 얻을 수는 없습니다. 누구나 이런 일을하려했습니다. 동일한 터치 이벤트에서 2 가지 다른보기가 작동 할 수 있습니까? 아니면 첫 번째보기에서 이벤트가 이길 수 있습니까?
내 디자인이 잘못되었을 수 있습니다. 누군가 다른 제안이 있으면 버리십시오. RMMapView를 수정하지 말고 정말로 MKMapView를 수정할 수는 없지만 실현 시키십시오.
가장 관련성이 높은 게시물은 다음과 같습니다. How to intercept touches events on a MKMapView or UIWebView objects?. 하지만 MKMapView에서 이벤트를 가로 채고 싶지는 않습니다. 두 개의 sup 뷰에 전달할 수 있도록 SuperView에서 차단하려고합니다.
감사
내 SuperView에서 이러한 메서드를 재정의하고 MKMapView 및 RMMapView에 전달하려고했습니다. 그러나 이들을 무시하고 이벤트를 MKMapView로 전달하는 것은 무한 루프를 유발하는 것으로 보입니다. – lostintranslation
응답 체인 메서드 만 사용하여 이벤트를 전달할 수 있습니다. 그것은 당신을 위해 UIView에 의해 만들어집니다. 이것을 해킹하지 마십시오. 그것은 작동하지 않습니다. –
소리가 잘 들지만 내 질문은 여전히 있습니다. 1. 응답 체인 메서드를 오버라이드 (override)하려고 해, MKMapView에 이벤트를 건네 주면, 무한 루프가 발생합니다. MKMapView와 RMMapView가 모두 이벤트에 응답하기를 바랍니다. I.E. 지도를 스크롤하면 둘 다 스크롤됩니다. – lostintranslation