2011-12-01 74 views
10

我需要準確跟蹤MKMapViewcenterCoordinate,同時用戶放大/平移地圖,即在regionWillChangeAnimated:regionDidChangeAnimated:事件之間。跟蹤MKMapView的中心座標

我試圖將MKAnnotation鎖定到地圖中心,測試了以下方法。不幸的是,他們沒有工作不夠好:

  • 使用UIPanGestureRecognizer(如描述here):這個工作得很好,而顯示器被觸摸,但觸摸手勢完成後不更新而地圖是動畫。另外,更新落後於實際的centerCoordinate

  • 使用UIScrollViewDelegatesubclassed MKMapView收到scrollViewDidScroll:事件。這工作,但事件不會觸發每個滾動增量,導致生澀的更新。

  • 使用志願通知:以下this模式,我想觀察的MapView的centerCoordinate。它適用於userLocation,但通知似乎並未發送給centerCoordinate

關於如何有效且準確地跟蹤centerCoordinate的任何想法?

KVO似乎是最好的選擇。使用MKMapViewcenterCoordinate屬性有什麼竅門嗎?

+1

你有沒有通過KVO通知解決這個問題? – Jann

回答

0

如果我正確理解,你正試圖讓東西(在你的情況下注釋),始終在屏幕的中心,對嗎? 不知道這個註解是用來做什麼的,但是在地圖的頂部放置另一個透明視圖作爲註釋是可以接受的(你也可以使這個視圖的大小與地圖相同,並且它的子視圖用作註解) 。它對用戶具有相同的效果。與該地區相比,確實發生了變化,您可以獲得中心坐席,並執行您需要執行的任何處理。我不認爲你需要做任何處理,因爲用戶平移或捏地圖...更不用說,註釋是爲了有固定的座標。