UIPanGestureRecognizer有一点问题. 
 
识别器不报告UIGestureRecognizerStateEnded
状态如果用户平移到左上角(意味着负x和y
方向)
识别器不报告UIGestureRecognizerStateEnded
状态如果用户平移到左上角(意味着负x和y
方向)
UIGestureRecognizerStateEnded状态改变如果有任何方向
当用户抬起手指时,它是积极的,但它只是停止报告
如果两个方向为负或零,则动作.
这是坏的,因为我隐藏一些覆盖视图只要用户
拖曳某些东西,这些意见不会在失败的情况下返回.
当然,我可以设置一个NSTimer来显示一些覆盖
时间自动再次,但我可以看到我的代码没有明显的错误
我想要干净
有没有我错过的东西?是苹果的Bug吗
初始化是这样的:
pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panRecognized:)]; [self addGestureRecognizer:pan]; [pan release];
处理功能如下所示:
- (void)panRecognized:(UIPanGestureRecognizer *)gestureRecognizer {
    switch ([gestureRecognizer state]) {
        case UIGestureRecognizerStateBegan:
            // fade some overlaying views out
            break;
        case UIGestureRecognizerStateEnded:
        case UIGestureRecognizerStateCancelled:
        case UIGestureRecognizerStateFailed:
            // fade in the overlays
            break;
        default:
            break;
    }
    // handle panning
}
解决方法
 线 
  
  
 
        [self addGestureRecognizer:pan];
看起来我错了
看起来你正在从UIView内部创建手势识别器,而不是UIViewController.所以如果视图是dealloc,它和手势识别器就会消失.
更好地从UIViewController创建手势识别器.此外,UIViewController需要保持对识别器的强烈要求.