2010-11-09 56 views
0

我想讓用戶定義重疊的邊框。這似乎應該是一件簡單的事情;但我甚至無法知道如何知道用戶何時觸摸地圖。我會認爲UIMapViewDelegate會有方法來響應用戶的交互,但它似乎並沒有。在Google地圖應用中,當您在某個位置舉行時,它將丟棄一個徽章;我猜這將是讓用戶定義覆蓋圖的第一步。MKMapView/MKOverlay - 允許用戶定義重疊座標

它看起來像UILongPressGestureRecognizer會提供我想要的;但不太瞭解如何將GestureRecognizer添加到MapView。我已經閱讀了MKMapView和UIGestureRecognizer文檔;我錯過了什麼?謝謝。

回答

1

任何UIView支持通過-addGestureRecognizer:方法添加手勢識別器。但是,這可能不是最好的方法:如果您想複製地圖行爲,則可以使用MKPinAnnotationView而其draggable屬性設置爲YES,然後在拖動結束時更新覆蓋的邊界以適應註記的位置(即當地圖視圖調用它的-mapView:annotationView:didChangeDragState:fromOldState:委託方法時)。請注意,無論您使用的註釋類是否需要實現方法(如MKAnnotation協議中定義的),以便引腳拖動工作。

+0

謝謝......我如何將MKPinAnnotationView添加到用戶首先按下的位置? – GendoIkari 2010-11-09 20:26:19

+1

好問題。我認爲最好的方法是建立一個初始的「默認」區域,比如在每個角落放置一個註釋。它會更直觀,並且在你的用戶界面中解釋得更少,讓已經存在的東西可以被操縱,而不是期待用戶放置新東西。 – 2010-11-09 20:31:06

+0

謝謝!這可能是我會做的。 – GendoIkari 2010-11-09 20:33:16