想用UILongPressGestureRecognizer来实现在触摸的时候执行一个循环,松开的时候就停止。长按的时候在刚开始会看到State==UIGestureRecognizerStateBegan,松开的时候State==UIGestureRecognizerStateEnded。要如何让用户按下后就执行一个循环操作,而在松开的时候就结束这个循环呢??

解决方案 »

  1.   

    定义一个类Circle做一个类(根据需求是否做单例)
    里面放两个方法:
    -(void) start:(NSNotification *) noti;
    -(void) end:(NSNotification *) noti;这两个方法设置为接收Notification方法。或者delegate也行;实例化Circle(作为一个成员)
    然后在你点击的时候,发送通知方法start;
    松开的时候发送通知方法end;不一定要用上述方法,但大概思路就是这样。
      

  2.   

    我用[self performSelector:_cmd withObject:nil afterDelay:0.01]做了一个循环,这样也不会阻塞主线程了
      

  3.   

    收到UIGestureRecognizerStateEnded状态的时候就[NSObject cancelPreviousPerformRequestsWithTarget:self]就可以结束这个循环了