UITableViewCell不响应响应者链

时间:2013-11-27 07:04:50

标签: ios objective-c uitableview uibutton

我在开发过程中遇到了问题,我有UITableViewCell,它添加了UIButtonUIButton已经满了Cell),我希望我的UIButton回复我的touchupinside事件,在处理完成后,事件再次发送,直到Cell要响应didSelectRowAtIndexPath方法。但现在,didSelectRowAtIndexPath不起作用? (注意:我不想手动调用didSelectRowAtIndexPath方法,希望通过响应链来解决这个问题)

1 个答案:

答案 0 :(得分:1)

如果按钮小于单元格,它应该按预期工作:如果触摸按钮,按钮处理程序将触发,如果您触摸单元格中的另一个区域,didSelectRowAtIndexPath将会触发。

但是,如果按钮覆盖整个单元格,则这不是问题。您可以从按钮处理程序中调用与表视图委托相同的例程。

- (void)tableView:(UITableView *)tableView 
    didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   [self doCellThingWithIndexPath:indexPath];
}

- (void)buttonAction:(UIButton*)sender {
    // do whatever the button does, then
    CGRect buttonFrame = [button convertRect:sender.bounds toView:self.tableView];
    NSIndexPath *indexPath = [self.tableView 
                              indexPathForRowAtPoint:buttonFrame.origin];
    [self doCellThingWithIndexPath:indexPath];
}