2013-09-24 78 views
4

我正在更新我的應用程序(MyWorld)到iOS 7. 應用程序的一個功能之一是,您可以在地圖視圖上拖動銷。 它似乎在iOS7中被破壞。ios 7 MKMapView拖動式註釋更改它在地圖滾動時的位置

步驟來重現問題:

  • 添加註釋到地圖: - 工作正常
  • 移動註釋(拖動)工作正常
  • 滾動地圖:問題

每當我滾動地圖vi新註釋隨地圖移動。它似乎沒有附加到正確的視圖或圖層?如果該引腳未被拖動,則地圖視圖看起來工作正常,並且註釋保持在定義的位置。 我想知道這是我的錯誤還是已知的問題?

我創建的ilusstrates在GitHub上的問題,虛擬MapViewTest項目:https://github.com/DJMobileInc/MapViewTest

+0

我也有同樣的問題。等待迴應。 – python

回答

17

這是從MKAnnotationView Class Reference,對於MKAnnotationViewDragStateNone常數:

MKAnnotationViewDragStateNone

的觀點是不參與在拖動操作中。註釋視圖負責在拖動結束或取消時自己返回到此狀態。

要解決該問題,當註釋結束或取消其拖動操作時,您的地圖視圖委託需要將註釋視圖的dragState設置回MKAnnotationViewDragStateNone。

例如:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView 
           didChangeDragState:(MKAnnotationViewDragState)newState 
             fromOldState:(MKAnnotationViewDragState)oldState 
{ 
    if (newState == MKAnnotationViewDragStateEnding) { 
     // custom code when drag ends... 

     // tell the annotation view that the drag is done 
     [annotationView setDragState:MKAnnotationViewDragStateNone animated:YES]; 
    } 

    else if (newState == MKAnnotationViewDragStateCanceling) { 
     // custom code when drag canceled... 

     // tell the annotation view that the drag is done 
     [annotationView setDragState:MKAnnotationViewDragStateNone animated:YES]; 
    } 
} 
+0

謝謝你的作品 –

+0

完美的作品。我的臨時解決方法是將自定義註釋更改爲mkpin子類。 –

+0

+1 ..保存我的時間 – Azhar

相關問題