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