当我单击UITableViewCell中的按钮时,UITableView不会调用didSelectRowAtIndexPath函数

时间:2016-09-09 12:53:42

标签: ios objective-c uitableview didselectrowatindexpath

我的按钮在UITableViewCell中有单选按钮作为图像。当我点击该按钮时,它会变成选中的单选按钮或未选中的单选按钮。这是有效的,但问题是它不会触发didSelectRowAtIndexPath。它只在我点击行上的空闲位置时触发该功能。我试过了UITapGestureRecognizer但它也行不通。我怎样才能解决这个问题?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

根据我的理解,您希望在Button和行选择上都具有相同的功能,

如果是真的,我知道的一些方法,

  1. 在Button事件上手动调用didSelectRowAtIndexPath方法。

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:ROW_YOU_WANT_TO_SELECT inSection:SECTION_YOU_WANT_TO_SELECT]
    [self tableView:YOUR_TABLE didSelectRowAtIndexPath:indexPath];
    

    并在didSelectRowAtIndexPath中使用您的功能。

  2. 从Button中移除操作目标,并在单元格上安装TapGestureRecogniser。

答案 1 :(得分:1)

您可以在tableview单元类中创建委托并在视图控制器中实现它,该委托应该返回索引路径。在创建tableview单元格时,将索引路径传递给它。现在,当点击段栏并调用其方法时,您可以调用委托并将索引路径传递给它。当您在视图控制器中实现委托时,您可以使用视图控制器中委托中返回的索引路径手动调用table.didselectrowatindexpath。希望这能为你清除逻辑!