Detect 2 vingers op het scherm op mapView MapKit

stemmen
0

Ik probeer om het evenement te detecteren op een MapView. Ik moet gewoon zoom (dubbele tik of 2 vingers op het scherm) op te sporen. Ik probeer een UIView laag die gebeurtenis te sporen toe te voegen, maar als ik een laag toe te voegen, verlies ik de controle op de kaart ( Hoe te onderscheppen raakt evenementen op een MKMapView of UIWebView voorwerpen? )

Bedankt voor de hulp!

Tony

De vraag is gesteld op 22/09/2009 om 17:37
bron van user
In andere talen...                            


2 antwoorden

stemmen
0

Volgens dit: linktekst

De MKMapView moet de standaard ontvanger van de gebeurtenissen.

Dus verander ik de klas van mijn hoofdvenster om 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

Heb ik iets gemist?

Bedankt voor de hulp

antwoordde op 24/09/2009 om 22:49
bron van user

stemmen
0

Toon ons wat code. Je moet in staat zijn om het even welke gebeurtenissen u niet geïnteresseerd bent in de rug aan de ouder zicht passeren. Bijvoorbeeld, na het detecteren van een twee vingers tikken, en doen wat je wilt, geschiedde dat dezelfde gebeurtenis terug naar Mapview en hebben het zelf te zoomen.

Hier is wat je bellen als je eenmaal klaar bent met uw evenement detectie:

[self.nextResponder touchesBegan:touches withEvent:event];
antwoordde op 23/09/2009 om 08:59
bron van user

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