2012-01-03 3 views
2

Мы разрабатываем картографическое приложение для iPhone. Нам нужно определить начало жестов и перехватов жестов на MapView.Обнаружение жестов Pinch, начинающегося с iPhone MapView

Мы можем обнаружить начало перетаскивания с использованием метода делегирования regionWillChange. Мы не можем обнаружить начало жестов.

Мы ищем способ обнаружения начала жестящего жест. Возможно ли это на MapView?

Спасибо заранее.

Редактировать: Мы пробовали со следующим кодом, но это не сработало.

UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(checkpinch)]; 
[self.mapView addGestureRecognizer:pinch]; 
[pinch release]; 

Устройство распознавания жестов двойного касания работает с MapView с использованием аналогичного кода.

UITapGestureRecognizer *Tap= [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(checktap)]; 
[self.mapView addGestureRecognizer:Tap]; 
[Tap release]; 

ответ

0

Вы можете обратиться образец яблока кода:

http://developer.apple.com/library/ios/#samplecode/WorldCities/Introduction/Intro.html

код иллюстрирует, как сопротивление и увеличить действия на MKMapView

+0

Спасибо за ответ. Мы ссылались на пример кода, но не можем найти, как обрабатывать обнаружение жесткого и двойного нажатия. – Sunflower

+0

Чтобы включить обнаружение жесткости прижима, убедитесь, что свойство zoomEnabled установлено на YES. Затем вы можете изменить уровень масштабирования, вызвав метод setRegion: animated:. – sahiti

+0

мы проверили с помощью набора значений масштабируемого набора. Он все еще не обнаруживает начала жесты. – Sunflower

0

Вы можете добавить Жест распознаватель к вашему MapView и проволоке до IBAction для обработки конкретного гостя. и в IBAction вы можете обнаружить начало/конец конкретного гостя.

Пример:

- (IBAction)handlePanGuesture:(UIGestureRecognizer *)recogonizer { 
    if (recogonizer.state == UIGestureRecognizerStateBegan) { 
     // do stuff 
    } 
    } 
+0

Спасибо за ответ. Мы попробовали использовать предоставленный метод делегирования. Мы можем обнаружить жест нажатия, но не можем определить жест щепотки, используя его. Мы попытались использовать UITapRecognizer и UIPinchRecognizer – Sunflower

+0

, вы можете опубликовать код для нас, чтобы посмотреть, согласно документации состояние получит метод действия жестов, вызванный с помощью stateBegan. –

4

Совершенная и простое решение.

первый добавить UIGestureRecognizerDelegate в вас файл .h чем добавить следующие два метода в вас .m файлу

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return YES; 
} 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 

{ 
    return YES; 
} 

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 

{ 
    return YES; 
} 

сделайте следующее изменение в viewdidload

[self.view insertSubview:mapView atIndex:0]; 

UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(yourmethod)]; 
[pinch setDelegate:self]; 
[pinch setDelaysTouchesBegan:YES]; 
[self.mapView addGestureRecognizer:pinch]; 
[pinch release]; 

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(youemethod)]; 
[tap setDelegate:self]; 
[self.mapView addGestureRecognizer:tap]; 
[tap release]; 
Смежные вопросы