Détecter 2 doigts sur l'écran sur Mapview MapKit

voix
0

J'essaie de détecter l'événement sur un MapView. J'ai juste besoin pour détecter le zoom (appuyez deux fois ou 2 doigts sur l' écran). J'essaie d'ajouter une couche de UIView qui détectent l' événement, mais si j'ajoute une couche, je perds le contrôle sur la carte ( Comment intercepter des événements petites touches sur un ou des objets MKMapView UIWebView? )

Merci pour l'aide!

Tony

Créé 22/09/2009 à 17:37
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Selon ceci: le texte du lien

Le Mkmapview doit être le récepteur par défaut des événements.

Donc, je change la classe de ma fenêtre principale MyMainWindow:

MyMainWindow.h

#import <Foundation/Foundation.h>
@class TouchListener;

@interface MyMainWindow : UIWindow {    

TouchListener *Touch;

}

@end 

MyMainWindow.m

 #import "MyMainWindow.h"

 @implementation MyMainWindow

 - (void)sendEvent:(UIEvent*)event {  
 [super sendEvent:event];  
 [Touch sendEvent:event];
 }
 @end

TouchListener.h

#import <Foundation/Foundation.h>
@interface TouchListener : UIView {

}

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

@end

TouchListeners.m

#import "TouchListener.h"

@implementation TouchListener

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
 return self;
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
 NSLog(@"Moved");
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    NSLog(@"Touch Began");
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    NSLog(@"Touch Ended");
}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
    NSLog(@"Touch Cancel");
}

@end

Ai-je manqué quelque chose?

Merci pour l'aide

Créé 24/09/2009 à 22:49
source utilisateur

voix
0

Montrez-nous un peu de code. Vous devriez être en mesure de passer tous les événements que vous n'êtes pas intéressé par revenir à la vue des parents. Par exemple, une fois que vous détecter deux doigt robinet, et faire tout ce que vous voulez, passer ce même événement retour à MapView et l'ont même zoom.

Voici ce que vous appelez une fois que vous avez terminé votre détection d'événements:

[self.nextResponder touchesBegan:touches withEvent:event];
Créé 23/09/2009 à 08:59
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more