1

我有一个具有拖放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 个计数器的 if 条件

4

1 回答 1

0

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

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

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

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

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

于 2012-07-24T08:36:57.047 回答