Detect 2 Finger auf dem Bildschirm auf mapView MapKit

stimmen
0

Ich versuche , das Ereignis auf einem mapview zu erkennen. Ich brauche nur Zoom (doppeltes Tippen oder 2 Finger auf dem Bildschirm) zu erfassen. Ich versuche , eine UIView Schicht hinzuzufügen , das Ereignis erkennen, aber wenn ich eine Schicht hinzufügen, verliere ich die Kontrolle auf die Karte ( Wie berührt Ereignisse auf einem MKMapView oder UIWebView Objekte abfangen? )

Danke für die Hilfe!

Tony

Veröffentlicht am 22/09/2009 um 17:37
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Nach diesem: Link - Text

Der MKMapView hat der Standard-Empfänger der Ereignisse sein.

So ändern Sie die Klasse meiner Hauptfenster 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

Habe ich etwas verpasst?

Danke für die Hilfe

Beantwortet am 24/09/2009 um 22:49
quelle vom benutzer

stimmen
0

Zeigen Sie uns einige Code. Sie sollten alle Ereignisse passieren können, Sie in wieder in der übergeordneten Ansicht nicht interessiert sind. Zum Beispiel, nachdem Sie einen zwei Finger tippen, erkennen und tun, was Sie wollen, dass die gleiche Ereignis mapview passieren zurück und hat es sich vergrößern oder verkleinern.

Hier ist, was Sie nennen, wenn Sie mit Ihrer Ereigniserkennung durchgeführt werden:

[self.nextResponder touchesBegan:touches withEvent:event];
Beantwortet am 23/09/2009 um 08:59
quelle vom benutzer

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