UIControlEventTouchUpInside在UIPanGesture之后没有触发

时间:2013-10-25 14:47:55

标签: ios objective-c uigesturerecognizer uicontrolevents

出于自定义的原因,我正在构建自己的滑块控件,如果需要,可以使用多个UIImageViews和UIButton构建。我已经使用UIPanGestureRecognizer进行了平移工作,工作正常。我正在尝试挂钩一个事件,它将处理UIControlEventTouchUpInside的代码,但是我无法在Pan事件触发后触发它。我已经使用UITapGestureRecognizer并使用UIButton的内置事件,但只有在它是唯一的手势时它才会触发。我需要知道用户何时不再向左和向右拖动滑块,但只有在用户将他/她的手指从屏幕上抬起后才会发生(我无法使用计时器来查看移动何时停止,因为用户可能仍然在决定开始Pan之后要去哪个方向。

简短版本:我如何知道用户何时停止平移控件并将手指从屏幕上抬起?

1 个答案:

答案 0 :(得分:3)

假设您按照以下方式初始化识别器:

UIPanGestureRecognizer *grPan=[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panning:)];

你可以这样做:

-(void)panning:(UIPanGestureRecognizer *)senderGestureRecognizer {
    if(senderGestureRecognizer.state==UIGestureRecognizerStateEnded)
    {
        //User stopped panning (lifted finger)
    }
}