Detect 2 palce na ekranie na MapView MapKit

głosy
0

Staram się wykryć zdarzenie na MapView. Muszę tylko do wykrywania zoomu (podwójny kran lub 2 palce na ekranie). Próbuję dodać warstwę UIView które wykrywają zdarzenia, ale jeśli dodać warstwę, tracę kontrolę na mapie ( Jak przechwycić zetkną zdarzeń na MKMapView lub UIWebView obiektów? )

Dzięki za pomoc!

Tony

Utwórz 22/09/2009 o 17:37
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Według tego: tekst linku

Mkmapview ma być domyślny odbiornik zdarzeń.

Więc zmienić klasę moim głównym oknie 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

Przegapiłem coś?

Dzięki za pomoc

Odpowiedział 24/09/2009 o 22:49
źródło użytkownik

głosy
0

Pokaż nam jakiś kod. Powinieneś być w stanie przekazać żadnych wydarzeń nie są zainteresowane powrotem do widoku macierzystego. Na przykład po wykryć dwa palec kranu, i rób co chcesz, przekazać tę samą imprezę z powrotem do MapView i go powiększać się.

Oto, co nazywasz raz skończysz z detekcją zdarzeń:

[self.nextResponder touchesBegan:touches withEvent:event];
Odpowiedział 23/09/2009 o 08:59
źródło użytkownik

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