UILongPressGesture在iphone sdk中

时间:2012-01-24 09:22:40

标签: iphone

 UILongPressGestureRecognizer *longPressOnUndoGesture = [[UILongPressGestureRecognizer alloc] 
    initWithTarget:self 
    action:@selector(handleLongPressOnUndoGesture:)];
    [longPressOnUndoGesture setMinimumPressDuration:2.0];
    [longPressOnUndoGesture release];

我有上面的代码来取消激活我的应用程序中的自动滚动计时器这就是这个功能。

-(void) handleLongPressOnUndoGesture:(UILongPressGestureRecognizer*)recognizer {
    [autoscrollTimer invalidate];

}

但是当我点击2秒时它不会停止计时器。我的手势代码中有任何错误。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

您没有使用手势识别器,因为您在创建手势识别器时会立即将其释放。你必须将它附加到这样的视图:

UILongPressGestureRecognizer *longPressOnUndoGesture = [[UILongPressGestureRecognizer alloc] 
initWithTarget:self 
action:@selector(handleLongPressOnUndoGesture:)];
[longPressOnUndoGesture setMinimumPressDuration:2.0];

// TRICK HERE
[self.view addGestureRecognizer:longPressUndoGesture];

[longPressOnUndoGesture release];

答案 1 :(得分:2)

在我看来,你没有将手势识别器添加到应该处理的视图中:

[self.view addGestureRecognizer: longPressOnUndoGesture];

(如果self是你的控制者)。