2010-04-02 162 views
2

我們擁有的MKMapView與一羣圖像標註的每張圖片的註釋響應通過覆蓋AnnotationView子類的這些方法來摸 觸摸事件:的MKMapView setRegion動畫防止在註釋視圖

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

我們的地圖區域使用

[MkMapView setRegion:animated:] 

每當新的位置被接收,是遠遠不夠的老位置有所作爲被更新。

我注意到那是什麼,如果我們設置動畫標誌YES我們標註的接觸很少檢測到(可能是由於這樣的事實,主線程是兩個地圖區域之間忙動畫。 當我們建立動畫標誌NO,一切都很好,但圖轉變可能(也可能不會)變得生澀

我的問題是,這是否是的[的MKMapView setRegion動畫標誌預期的行爲:動畫]功能還是t這是解決此問題的一種解決方法。提前

回答

4

由於通常的MapView被動畫有其userInteractionEnabled屬性在動畫過程設置爲no。如果你需要改變這種行爲,你應該繼承這個視圖並覆蓋適當的方法。

或者,你可以放置過的MapView爲動畫的持續透明的視圖來捕捉特定類型的動作,比如到雙擊響應停止在區域的變化。

+0

感謝userInteractionEnabled屬性更改上的指針,我無法找到任何有關爲什麼以及何時系統可能決定更改此屬性的信息。但是,我可能會通過KVO收聽其更改,並在需要時將其切換回去。 – 2010-04-07 19:25:54

+0

但是,我們的應用程序有一個導航工具欄,上面有mkMapView按鈕。 問題是,在setRegion動畫期間,不僅註釋視圖對觸摸沒有反應,而且工具欄上的按鈕也不響應。如果[MkMapView setRegion:region animated:YES]阻塞主線程,則只有按鈕無響應纔有意義。 – 2010-04-07 19:26:16

+0

@VladimirGurovich這個答案是如何解決你的問題的?我觀察到userInteractionEnabled屬性,並且沒有改變。 – vrwim 2017-02-10 10:25:21