1
我有一個mapView,在我的mapView
中,您可以用雙擊,捏,UIButton
(+和 - )和UISlider
進行縮放。 現在...我想識別doubletap和pinch,刷新UISlider的位置...我使用一個名爲zoomLevel
的NSInteger變量來做到這一點。MKMapView上的手勢識別 - iPhone
我已經試過兩路,但不工作:
1)
UIGestureRecognizer *recognizer;
// taps
recognizer = [[ UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap)];
tapGR = (UITapGestureRecognizer *)recognizer;
tapGR.numberOfTapsRequired = 2;
tapGR.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tapGR];
[recognizer release];
2)
- (void)touchesEnded:(NSSet *)touches withEvent: (UIEvent *) event{
UITouch* touch = [[event allTouches] anyObject];
NSLog(@"2 taps");
if(touch.tapCount == 2){
NSLog(@"2 taps");
[self zoomLevelWithMapView:mappa];
}
有人能幫助我嗎? 更好的實例 謝謝。
好主意......我認爲你的代碼沒問題。我明天會考。 對於縮放比例我研究了特洛伊布蘭特的代碼,我將使用你的算法的反向版本: http://troybrant.net/blog/2010/01/set-the-zoom-level-of -mkmapview/ 剩下的唯一問題是,我不可能爲每個座標自動設置最大縮放級別,因爲最大縮放根據地球的面積而變化... 我會發明一些東西。 再次感謝。 – Byteros 2011-03-13 22:58:27
我不認爲這是一個好主意。這種代表方法和手勢事件之間存在一些延遲,這會使用戶很難使用。 – David 2012-12-10 13:15:56