如何检测UITableViewCell特定区域/矩形的点击?

时间:2015-06-10 17:17:17

标签: ios objective-c uitableview cocoa-touch

我有一个使用4个自定义UITableViewCell的UITableViewController。

这些自定义单元格中的2个需要特殊行为。

而是检测用户是否通过didSelectRowAtIndexPath选择了行/单元...我需要更具体地检测一个水龙头。

例如,我的一个自定义单元格基本上是2个按钮。单元格左侧的按钮和右侧的按钮。

1)这是最好的方法,只需将按钮的代理连接到我的viewcontroller,这样按钮就可以工作,或者我想尝试检测用户点击的特定矩形/区域?

4 个答案:

答案 0 :(得分:2)

连接按钮,这是他们的

答案 1 :(得分:0)

在tableview的cellForRowAtIndexPath

中添加此内容
cell.selectionStyle = UITableViewCellSelectionStyleNone;

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(methodToCallWhenPressed)];
[tap setNumberOfTouchesRequired:1];
[tap setNumberOfTapsRequired:1];
[cell.button addGestureRecognizer:tap];

您还需要从自定义单元格中的按钮创建IBOutlet

答案 2 :(得分:0)

只需使用target-action来观察按钮。如果您在细胞吃触摸事件时遇到问题,则不应尝试覆盖-hitTest:withEvent:

答案 3 :(得分:0)

如果您对UIButton感到不舒服,可以使用UILabel。例如,您可以在Custom UITableViewCell的每一侧添加2个UILabel,调整它们以填充您想要的区域,然后添加2个UITapGesturesRecognizers。我告诉你这些步骤:

  • 使用界面构建器
  • 将2个UILabel添加到自定义单元格
  • 转到“属性检查器”选项卡,然后找到"用户交互启用"并启用它。 (为每个UILabel执行此操作)
  • 将UILabel连接到自定义单元控制器(IBOutlet)
  • 为每个UiLabel添加一个UITapGesturesRecongnizer
  • 创建一个委托,将Touch事件从Custom单元类传递给TableView Controller,以处理Touch。

就是这样!

我将在这里留下一张自定义单元格如何

的图片

https://www.dropbox.com/s/u97n9yqtgd8x196/label.jpg?dl=0

如果您需要别的东西,请告诉我们!

祝你好运。