平移地图会改变手势识别器的行为吗?

时间:2015-08-25 23:51:31

标签: ios skmaps

所以,我有一个自定义手势识别器添加到skmap,但行为不一致,但相当奇怪。首先,地图和我的手势识别器都会响应手势事件。

但是在平移或捏合后旋转&缩放,只有手势识别器响应手势。虽然地图不响应任何手势,如捏/平移/点击。我称之为“锁定”#34;状态。

在此状态下,地图不会响应任何内容。试图旋转/捏合将解锁"它。但试图平移不会。因此,例如,序列是,我平移地图,它遵循。然后我几次平移地图,它根本不动。然后我尝试旋转它,地图保持不动。然后我第三次平移它,它可以再次按照我的手势。

所以我的问题是,这两种状态之间有什么区别,当我移动/尝试旋转它时,地图发生了什么变化。

我的代码非常简单,仅用于测试目的。 myGestureRecognizer.m:

#import "myGestureRecognizer.h"
#import <MapKit/MapKit.h>
@implementation myGestureRecogniczer
-(id)init;
{
    self = [super init];
    self.delegate = self;
    return self;
}

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

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

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

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

和mapViewController.m:

-(void)viewDidLoad
{
    [super viewDidLoad];

    self.myMapView = [[SKMapView alloc] initWithFrame:CGRectMake( 0.0f, 0.0f,  CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame))];
    self.myMapView.delegate = self;
    self.myMapView.calloutView.delegate = self;
    [self.view addSubview:self.myMapView];

    myGestureRecogniczer *gestureRecognizer = [[myGestureRecogniczer alloc] init];
    [self.myMapView addGestureRecognizer:gestureRecognizer];
}

0 个答案:

没有答案