我有一個帶有自定義註釋的iOS應用程序。點擊一個MKAnnotationView來取消選擇它並隱藏它的標註
- 我希望能夠挖掘一個MKAnnotationView一次,以顯示它的標註(正常工作)
- ,然後我想挖掘MKAnnotationView第二次取消選擇註釋和隱藏的標註註釋(適用於iOS5,但不適用於iOS6)。
據我所知,didSelectAnnotationView只應該被調用的初始選擇的註釋。 ([1]:Selecting a MapView Annotation Twice ),並基於本文和我已閱讀過的其他文章[[2]:ios mapkit closing annotation callouts by tapping the map),它看起來像在檢測到MKAnnotationView被選中後需要使用UITapGestureRecognizer。
所以,我使用的是UITapGestureRecognizer,當我已經選擇了我的註釋視圖時,我正確地檢測到額外的水龍頭,並且當我識別出水龍頭並且我正在隱藏/取消選擇時調用deselectAnnotation標註/註釋分別。它在iOS5中效果很好,但它在iOS6中只有一半可用
在iOS6中,輕敲手勢識別器被調用,並且我調用我的代碼來隱藏標註並取消選擇註釋,一切正常,但接下來使用selectAnnotationView方法會以某種方式被調用,所以我的標註再次出現,我的標註再次被選中。
我假設發生的事情是,當我在抽頭手勢識別器中取消選擇註釋視圖後,輕擊事件仍處於活動狀態,mapView檢測到觸摸事件並調用selectAnnotationView,因此註釋我只是被取消選擇現在再次被選中。
我不知道爲什麼它只發生在iOS6,但我希望輸入任何其他想法來處理我想要的行爲。
可以顯示代碼中刪除手勢? – james075