如果计数器达到3,则停止触摸移动

时间:2012-07-24 08:18:58

标签: objective-c ios drag-and-drop

我有一个拖放UIView功能的应用程序。我应该只让3次拖拽而不是更多。如何跟踪拖动的数量?我尝试在touchesBegan()中递增计数器,但计数器在点击视图时也会增加。我希望只有在拖动视图时才能增加它。您还可以提供一个片段,用于将小UIView拖放到顶部的另一个视图中。我不知道我是否使用了正确的方法。

我的代码:

(void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    [self.view setMultipleTouchEnabled:NO]; 
    UITouch *touch = [touches anyObject]; 
    if ([touch view] == option1View || [touch view] == option2View ||
        [touch view] == option3View ||[touch view] == option4View) { 
            CGRect frame = [[touch view] frame];
            if(counter == 1){
                frame.origin.x = 10;
                frame.origin.y = 90; 
            }
            [[touch view] setFrame:frame]; 

我在触摸开始时增加了我的计数器。我检查了如果条件为3例计数器

1 个答案:

答案 0 :(得分:0)

Apple有一个手势识别器完全用于拖动。它是UIPangestureRecognizer。它只识别平移手势而不是点击或其他东西。

这是doc http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIPanGestureRecognizer_Class/Reference/Reference.html

您可以更轻松地管理平移/拖动手势,然后使用touchesBegan()等...

来自Doc: 所有手指抬起时UIGestureRecognizerStateEnded结束。

您可以检查状态并增加计数器。