以下内容不起作用 — 从不调用handleSwipeUpTriple
:
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UISwipeGestureRecognizer *swipeUpTripleRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeUpTriple:)];
swipeUpTripleRecognizer.direction = UISwipeGestureRecognizerDirectionUp;
swipeUpTripleRecognizer.numberOfTouchesRequired = 3; // triple finger
// window is in nib
[self.window addGestureRecognizer:swipeUpTripleRecognizer];
[swipeUpTripleRecognizer release];
}
- (void) handleSwipeUpTriple:(UISwipeGestureRecognizer *)sender {
printf("nhandleSwipUpTrpl called."); // never happens
if (sender.state == UIGestureRecognizerStateEnded)
printf("n SwipeUpTriple recognized.");
}
}
奇怪的是,如果我将TouchesRequired的数量更改为1甚至2,它就可以工作。只有 3(或 4)根手指似乎出界。由于我看到许多关于 3 指手势的帖子,我不明白为什么会这样。
self.window.multipleTouchEnabled 是 YES。
出于测试目的,我删除了所有子视图。屏幕上只有self.window。
我仍在使用iOS 4.3,但是由于iOS 3.2可以使用UISwipeGestureRecognizer,我不明白为什么这应该是一个问题。
非 iPad 设备有时会运行 3 根手指的系统手势识别器(通常是缩放)。根据您的设置,系统可能已为自己保留此数量的手指。
正如我们发现的,您可以通过转到常规>辅助功能并禁用三指手势来解决此问题。