iOS:在tableViewCell底部调用willSelectRowAtIndexPath

时间:2011-05-23 05:28:51

标签: ios

我有一个自定义UITableViewCell,它有2个按钮和一个标签。问题是当我点击单元格底部正上方时,只会调用willSelectRowAtIndexPath。

我为UITableViewCell设置了User Interaction Enabled为true。这允许我单元格中的按钮可以点击。

如果我将其设置为false,当我单击单元格中的任何位置但是按钮不再起作用时,我将调用RunRowAtIndexPath。

请帮忙!

1 个答案:

答案 0 :(得分:0)

我不确定按钮是否可以在启用时自动发生。但是我们可以让细胞知道它被选中了。

- (IBAction)respondToClick:(id)sender {
    CustomTableViewCell *customCell = (CustomTableViewCell*)sender.superview;

    // You can signal the cell to select itself (will not send the delegate message)
    [customCell setSelected:YES animated:NO];

    // Alternately this can be done but I don't recommend
    NSIndexPath *indexPath = [myTableView indexPathForCell:customCell];
    if ( myTableView.delegate && [myTableView.delegate respondsToSelector:@selector(tableView:willSelectRowAtIndexPath:)] ) {
        [myTableView.delegate tableView:myTableView willSelectRowAtIndexPath:indexPath];
    }
}