2011-12-01 3 views
10

사용자가 이 MKMapView 인 것을 정확하게 추적해야합니다 (예 : regionWillChangeAnimated:regionDidChangeAnimated: 이벤트 사이).Tracking MKMapView의 centerCoordinate

MKAnnotation을지도의 가운데에 고정하여 다음 방법을 테스트했습니다. 불행하게도, 그들 중 누구도 충분히 잘 작동하지 : UIPanGestureRecognizer를 사용

  • 이 (here을 설명) :이 아주 잘 화면을 터치하면서 작동하지만 터치 제스처가 완료된 후 맵 애니메이션되는 동안 업데이트하지 않습니다 . 또한 업데이트는 실제 centerCoordinate보다 뒤쳐집니다. scrollViewDidScroll: 이벤트를 받기 위해 I subclassed MKMapViewUIScrollViewDelegate를 사용

  • . 이 방법은 효과가 있었지만 모든 스크롤 증가량에 따라 이벤트가 트리거되지 않으므로 갑작스러운 업데이트가 발생했습니다. KVO 알림 사용

  • : 다음 this 패턴, 내가 관찰하려고했던지도보기의 centerCoordinate. userLocation에서 작동하지만 알림은 centerCoordinate으로 전송되지 않는 것 같습니다.

centerCoordinate을 효율적이고 정확하게 추적하는 방법에 대한 아이디어가 있으십니까?

KVO가 최상의 선택 인 것으로 보입니다. MKMapViewcenterCoordinate 속성에서 작동하도록하려면 속임수가 있습니까?

+1

KVO 알림을 통해이 문제를 해결 했습니까? – Jann

답변

0

제대로 이해하면 항상 화면 가운데에있는 무언가 (사례에 주석 달기)가있는 것입니다. 맞습니까? 이 주석의 용도가 확실하지 않지만 주석 역할을하는지도 위에 또 다른 투명보기를 배치하는 것이 허용됩니다 (이보기를지도와 동일한 크기로 만들 수 있으며 하위보기를 주석으로 사용할 수도 있음) . 사용자에게도 동일한 효과가 있습니다. 지역이 변경된 것보다 centerCoordinate를 얻고 처리해야하는 작업을 수행 할 수 있습니다. 나는 사용자가 팬을 움직이거나 맵을 집어 넣을 때 어떤 처리도 할 필요가 없다고 생각한다 ... 주석은 고정 된 좌표를 갖는 것을 의미한다.