Iphone 为什么在iOS 7中,UIPangestureRecognitor不能在屏幕的顶部工作?

Iphone 为什么在iOS 7中,UIPangestureRecognitor不能在屏幕的顶部工作?,iphone,ios,uikit,uigesturerecognizer,uipangesturerecognizer,Iphone,Ios,Uikit,Uigesturerecognizer,Uipangesturerecognizer,我在UICollectionViewCell子类中创建了一个UIPangestureRecognitor。它可以在除屏幕顶部以外的所有单元格中工作。大约状态栏的高度,平移手势识别器已关闭。它不会开火。我的测试应用程序只有一个UICollectionView,其他什么都没有。没有状态栏。我认为这可能与通知中心“活动边缘”窃取触摸事件有关 _panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self actio

我在UICollectionViewCell子类中创建了一个UIPangestureRecognitor。它可以在除屏幕顶部以外的所有单元格中工作。大约状态栏的高度,平移手势识别器已关闭。它不会开火。我的测试应用程序只有一个UICollectionView,其他什么都没有。没有状态栏。我认为这可能与通知中心“活动边缘”窃取触摸事件有关

_panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)];
_panGestureRecognizer.delegate = self;
_panGestureRecognizer.maximumNumberOfTouches = 1;
[self addGestureRecognizer:_panGestureRecognizer];
在屏幕顶部,当我在单元格中平移时,平移开始时没有收到任何消息。在我举起手指之前,不会有回叫。然后,回调接收开始,紧接着它接收结束

- (void)panGestureRecognized:(UIPanGestureRecognizer*)sender {
    NSLog(@"pan detected"); // for first cell, only called when finger is lifted up.

    if (sender.state == UIGestureRecognizerStateBegan) {
        NSLog(@"BEGAN");
    } else if (sender.state == UIGestureRecognizerStateEnded) {
        NSLog(@"ENDED");
    }
}
该单元是手势识别器的代表。它执行:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}
该单元格还覆盖UIView方法:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
    return YES;
}

这是屏幕顶部平移手势识别器的已知问题吗?还有解决办法吗?

我想你回答了你自己的问题..0x7fffffff不,我没有。我想你不知道为什么手势识别器回调没有收到propper取消状态,因此你否决了我的好问题。为什么你认为我否决了你的问题。你在21分钟前问了这个问题,两分钟后就被否决了。直到大约10分钟后,当我留下我的评论时,我才看到这篇文章……我有同样的问题,修复了它。请看我自己的答案:希望有人能解决这个问题。