【问题标题】:Add UITapGestureRecognizer to UIVIew XIB将 UITapGestureRecognizer 添加到 UIVIew XIB
【发布时间】:2018-10-07 05:09:36
【问题描述】:
@interface MyCustomView() @end

@implementation MyCustomView

- (instancetype)init {
    self = [[[MyClass bundle] loadNibNamed:kOverlayNib owner:self options:nil] firstObject];
    self.layer.cornerRadius = 10;
    self.translatesAutoresizingMaskIntoConstraints = NO;
    self.userInteractionEnabled = YES;
    UITapGestureRecognizer *singleFingerTap =
    [[UITapGestureRecognizer alloc] initWithTarget:self
                                            action:@selector(handleSingleTap:)];
    [singleFingerTap setNumberOfTapsRequired:1];
    [singleFingerTap setNumberOfTouchesRequired:1];
    [self addGestureRecognizer:singleFingerTap];

    return self; }

//The event handling method
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
    NSLog(@"Tappedddddddddd");
}

我已在我的 kOverlayNib.xib 中添加了点按手势识别器,但由于某种原因我无法得到任何响应..它根本不起作用..

【问题讨论】:

  • UIGestureRecognizerDelegate 定义并写入singleFingerTap.delegate = self;
  • 哦,好点,错过了那部分,谢谢!

标签: objective-c uiview uistoryboard xib uitapgesturerecognizer


【解决方案1】:

你错过了一些东西..

  1. @interface MyCustomView() <UIGestureRecognizerDelegate> @end 或任何你想写的地方。

  2. singleFingerTap.delegate = self;

  3. - (BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer)otherGestureRecognizer { return YES; }

现在您可以运行您的代码了。它有效。

【讨论】:

  • 还需要添加这个 - (BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer)otherGestureRecognizer { return YES; }
猜你喜欢
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多