所以我在UITableViewCell中有一个UIImageView。现在,我之前处理过类似的事情,并且我以相同的方式实现了。但这是我的问题。当我以编程方式将UITapGesureRecongizer设置为单元格图像视图时,我没有从我的日志中获得任何响应。这是我尝试过的。我已经尝试在UITableviewCell类中使用此代码:
UITableViewCell.m
UITapGestureRecognizer *banner = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Banner:)];
self.bannerImageView.userInteractionEnabled = YES;
[self.bannerImageView addGestureRecognizer:banner];
-(void)Banner:(UITapGestureRecognizer *)gesture {
NSLog(@"HERE !!!");
}
我也试过在TableViewController中使用相同的代码。理想情况下,我希望在此类中包含代码。
UITableViewController.m
UITapGestureRecognizer *banner = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Banner:)];
cell.bannerImageView.userInteractionEnabled = YES;
cell.bannerImageView addGestureRecognizer:banner;
-(void)Banner:(UITapGestureRecognizer *)gesture {
NSLog(@"HERE !!!");
}
有些东西告诉我,我必须更改UIViews层次结构或'z-index'才能使用它?我没有想法。如果有人可以提供帮助那就太棒了。谢谢
答案 0 :(得分:0)
可能发生的是您的手势识别器与安装在tableview,scrollview或tableview单元格上的手势识别器之一发生冲突。尝试订阅手势识别器的代理并实现方法
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
现在只需返回是以确认这是否真的是问题,您可以从那里微调任何产生的问题。
答案 1 :(得分:0)
试试这个:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"yourIdentifierName"];
UITapGestureRecognizer *banner = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Banner:)];
[cel.bannerImageView setUserInteractionEnabled:YES];
[cell.bannerImageView addGestureRecognizer:banner];
if (cell == nil) {
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"yourIdentifierName"];
}
return cell;
}
-(void)Banner:(UITapGestureRecognizer *)gesture {
NSLog(@"HERE !!!");
}