检测UITableView的自定义单元上的水龙头
所以我有一个自定义的UITableViewCell
包含三个UILabel
。 UITableViewCell
是这样的UILabel
完全覆盖单元格。
现在我想要检测用户每次点击单元格。 问题是因为UILabel
覆盖单元格,我不能使用UITableView
委托方法来检测单元格上的触摸。
我尽pipe在UILabel
上使用手势recoginzers但我没有得到被触摸的单元格的索引。 我也想过在单元格的顶部放置一个透明的button,但这里也有同样的问题,我无法得到被触摸的单元格的索引。
任何人都可以指导我的方法,我怎样才能完成检测与tableView didSelectRowAtIndexPath
当UILabel
覆盖单元格的水龙头。
尝试在单元格中的所有标签中将userInteractionEnabled设置为false。 这将传递到单元格,然后你可以使用UITableView代表。 确保单元格保持userInteractionEnabled = YES
除了didSelect
方法以获得触摸事件,请尝试此操作。 在你的自定义单元类中添加一个块,
typedef void(^TappedCell)(CustomCell *cell);
并为它添加一个属性,
@property (nonatomic, strong) TappedCell tappedCell;
并透明的button动作
- (IBAction)buttonTapped { if (self.tappedCell) { self.tappedCell(self); } }
并在cellForRow
方法
__weak type(self)weakSelf = self; cell.tappedCell = ^ (CustomCell *tappedCell) { //Ur actions goes here //for getting index NSIndexPath *indexPath = [weakSelf.tableView indexPathForCell:tappedCell]; [weakSelf someActionWithIndexPath:indexPath]; };
UILabel
隐藏你的单元格或UIImageView
隐藏它并不重要。 它会自动检测tableView didSelectRowAtIndexPath
。 首先检查你是否会遇到任何问题。 你有没有尝试首先实现tableview的细节
- UItableViewCells中的单选button逻辑
- 固定在UITableview底部的一个浮动button与scrollViewDidScroll不能正常工作
- 如何使浏览器在ios中滚动
- 从UITableView保存多个值
- 应用程序崩溃在UItableCellSection长按
- uitableview重新sorting不起作用,源始终等于目的地
- 如何在两个ViewController之间传递数据,其中第一个VC有两个tableViews,第二个tableViewselect的数据应该传递给第二个VC?
- 在UITAbleView中缓慢加载来自URL的图像。
- 我如何等待,直到一个UITableView内置animation完成?