我想在单击一个类的对象时删除手势

时间:2015-05-05 05:56:42

标签: ios objective-c iphone ios7 ios5

从我这边我会尝试下面的代码,但它不起作用。

- (void) handleTouch:(UITapGestureRecognizer *) gesture
{
   CGPoint touchPoint = [gesture locationInView:self.view];

   NSArray *viewsAtPoint = [self viewsAtPoint:touchPoint];

   for(TheifView * aView in viewsAtPoint)
   {
     [aView removeFromSuperview];
   }
}


- (void) registerGesture
{
   UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTouch:)];
   tapGesture.numberOfTapsRequired = 1;
   [self.view addGestureRecognizer:tapGesture];
}

3 个答案:

答案 0 :(得分:-1)

可以通过以下代码

删除手势目标和选择器
[gesture removeTarget:self action:@selector(handleTouch:)];

答案 1 :(得分:-1)

将标签添加到ThiefView ...说111.然后你可以识别它并从self.view中删除。如果这不是您期望的答案,那么请用清楚的描述来解释..

//从视图中移除手势..

for (UIGestureRecognizer *recognizer in self.view.gestureRecognizers) {
            if ([recognizer isKindOfClass:[UITapGestureRecognizer class]]) {
                [self.view removeGestureRecognizer:recognizer];
            }
        }

//从视图中删除ThiefView

    for (UIView *subview in self.view.subviews) {
        if (subview.tag==111) {
            [subview removeFromSuperview];
        }
    }

答案 2 :(得分:-1)

完全删除

- (void) handleTouch:(UITapGestureRecognizer *) gesture
{
  [self.view removeGestureRecognizer:gesture];
}

删除目标

- (void) handleTouch:(UITapGestureRecognizer *) gesture
{
  [gesture removeTarget:self action:@selector(handleTouch:)];
}

禁用手势

- (void) handleTouch:(UITapGestureRecognizer *) gesture
{
  gesture.enabled=NO;
}