2

所以我试图在我的应用程序屏幕上的一个子视图中添加一个滑动手势。我声明手势识别器如下:

UISwipeGestureRecognizer *swiperR = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(switchStackingMode:)];
    [swiperR setDirection:UISwipeGestureRecognizerDirectionRight];
    [chart addGestureRecognizer:swiperR];

UISwipeGestureRecognizer *swiperL = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(switchStackingMode:)];
    [swiperL setDirection:UISwipeGestureRecognizerDirectionLeft];
    [chart addGestureRecognizer:swiperL];


-(void)switchStackingMode:(UISwipeGestureRecognizer *)sender {
    NSLog(@"inside switchstack from gesture");
    //other stuff
}

当我尝试在应用程序启动时与子视图交互时,只有滑动手势 swiperL 有效。我右击没有反应。我最初尝试只做一个带有方向的手势识别器(UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight),但这不起作用,并且基于其他堆栈溢出答案,我恢复为两个单独的识别器。仍然没有运气,这让我很困惑。我觉得我错过了什么。。

4

2 回答 2

1

这段代码应该可以工作。您在尝试设备吗?在模拟器中滑动手势并不容易。

您只能做一个手势,左右都可以识别。这种方式适用于左右或上下,但不适用于所有方向。

于 2012-07-19T13:44:05.417 回答
0

我在这里回答了这个设置 UISwipeGestureRecognizer 的方向。我相信这个错误是你不能让你的“动作”名称相同,即没有两个选择器都命名为“switchStackingMode”。使用 switchStackingModeRight 和 switchStackingModeLeft。

于 2012-10-24T20:52:22.260 回答