UITapGestureRecognizer未被调用

时间:2014-09-02 05:33:38

标签: ios objective-c uiview

我在我的视图中添加了以下UITapGestureRecognizer。

- (void)viewDidLoad {

   _focusView = [[PBJFocusView alloc] initWithFrame:CGRectZero];
   _focusTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(_handleFocusTapGesterRecognizer:)];
   _focusTapGestureRecognizer.delegate = self;
   _focusTapGestureRecognizer.numberOfTapsRequired = 1;
   _focusTapGestureRecognizer.enabled = NO;
   [_previewView addGestureRecognizer:_focusTapGestureRecognizer];
}

- (void)_handleFocusTapGesterRecognizer:(UIGestureRecognizer *)gestureRecognizer {

   NSLog(@"Focus");
}

5 个答案:

答案 0 :(得分:1)

应该启用

_focusTapGestureRecognizer。试试这个

_focusTapGestureRecognizer.enabled = YES;

OR 删除此行

_focusTapGestureRecognizer.enabled = NO;

答案 1 :(得分:0)

在您的代码中尝试此操作

_focusView.userInteractionEnabled = YES;

可能会有帮助......

答案 2 :(得分:0)

_focusTapGestureRecognizer.enabled = NO;

删除此行

答案 3 :(得分:0)

为了使这项工作检查这三件事,因为其他人建议我只是一步一步地写它们

  1. 检查是否在.h文件中设置了TapGesture的代理。
  2. 检查您正在添加手势的UIView,其userInteractionEnabled为True。
  3. 启用UITapGesture是的.//为什么不是?
  4. 第四,你是否给了UIView任何尺寸,检查是否添加了一些背景颜色,看它是否可见。
  5. 如果这些4不能帮助您输入您使用它的代码。

答案 4 :(得分:0)

您可能还想检查您是否尝试将UITapGestureRecognizer对象重复用于不同的视图。

似乎可以,因为您将手势添加到视图中,但最终需要将视图分配给手势对象上的view属性,因此将手势对象添加到第二个视图将只会覆盖第一个。