UITapGestureRecognizer 为零

Posted

技术标签:

【中文标题】UITapGestureRecognizer 为零【英文标题】:UITapGestureRecognizer is nil 【发布时间】:2014-09-04 11:46:49 【问题描述】:

我有一个表,应该将手势识别器添加到表头标签中。这是通过以下代码完成的:

    UITapGestureRecognizer *singleFingerTap =
    [[UITapGestureRecognizer alloc] initWithTarget:self
                                            action:@selector(handleTableheaderTap:)];
    [headerView addGestureRecognizer:singleFingerTap];
    singleFingerTap.delegate = self;

选择器方法如下所示:

- (void)handleTableheaderTap:(UITapGestureRecognizer *)recognizer

不幸的是,当方法被调用时,识别器为 nil。我需要改变什么,所以识别器在 handletTableheaderTap 中不再是 nil 了吗?

谢谢!

【问题讨论】:

您如何确定“调用方法时识别器为零”? 【参考方案1】:

您必须将实例存储在控制器属性中。 声明一个私有属性来存储它。

例子:

@interface MyViewController()
@property (nonatomic, strong) UITapGestureRecognizer *singleFingerTap
@end

...

self.singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self
                                            action:@selector(handleTableheaderTap:)];
 [headerView addGestureRecognizer:singleFingerTap];
  singleFingerTap.delegate = self;

【讨论】:

对 -1 的评论?

以上是关于UITapGestureRecognizer 为零的主要内容,如果未能解决你的问题,请参考以下文章

UITapGestureRecognizer 不适用于 UIView 动画

使用 UITapGestureRecognizer 无法识别的选择器

UIlabel 中的 UITapGestureRecognizer 错误

UITapGestureRecognizer 的问题

带有点击事件的 UITapGestureRecognizer

UIButton 上的 UITapGestureRecognizer