【发布时间】:2013-02-12 19:29:45
【问题描述】:
我有一个奇怪的问题 - 当我在 cellForRowAtIndexPath 方法中注册 TapGestureRecognizer 时,它可以完美运行,但是当我在单元格的 initWithStyle 方法中注册 TapGestureRecognizer 时,点击识别不起作用,断点不会在处理程序中命中。
以下工作。
我已经使用相应的 xib 文件创建了自定义表格视图单元格并注册了它。
[self.tableView registerNib:[UINib nibWithNibName:@"MyCell"
bundle:[NSBundle mainBundle]]
forCellReuseIdentifier:@"cell"];
...
and in the cellForRowAtIndexPath
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
...
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(didTapCell:)];
[tap setNumberOfTapsRequired:1];
[cell addGestureRecognizer:tap];
以下不起作用
@implementation MyCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleCellTap:)];
[tgr setDelegate:self];
[tgr setNumberOfTapsRequired:1];
[tgr setNumberOfTouchesRequired:1];
[self addGestureRecognizer:tgr];
//[self.contentView addGestureRecognizer:tgr]; also doesn't work
}
return self;
}
我可以离开工作解决方案,但我想将手势识别移动到单元初始化并通过我的委托触发点击事件。
如果我在单元格初始化中注册识别器,为什么点击识别不起作用?
【问题讨论】:
-
更改这一行 [tgr setNumberOfTouchesRequired:1];with [tgr setNumberOfTouchesRequired:2];,它对我有用...
标签: ios ios5 uitapgesturerecognizer