在didSelectRowAtIndexPath

时间:2017-10-24 07:41:48

标签: objective-c uitableview selector didselectrowatindexpath addtarget

任何人都可以告诉我如何调用为didSelectRowAtIndexPath中的单元格内部单击UIButton创建的自定义函数。我在tableViewCell中有一个购物车按钮,当点击时我正在更改图标并维护一个工作正常的购物车列表。但我想要实现的是当用户点击任何行时,也可以使用UIButton的这个功能。

我在cellForRowAtIndexPath

中编写了以下代码
cell.addToCardButton.tag = indexPath.row;
[cell.addToCardButton addTarget:self action:@selector(CartTapped:) forControlEvents:UIControlEventTouchUpInside];

//cartTapped function defination
- (void)CartTapped:(UIButton*)sender {
    NSUInteger index = sender.tag;
    Product *product = [results objectAtIndex:index];
    NSIndexPath *ip = [NSIndexPath indexPathForRow:index inSection:0];

    if(sender.selected) {
        UIImage *btnImage = [UIImage imageNamed:@"AddCart.png"];
        [sender setImage:btnImage forState:UIControlStateNormal];
        [BasketObjects delete:product] ;

    } else {

        sender.imageView.image =[UIImage imageNamed:@"ClearCart.png"];
        [[BasketObjects sharedInstance].basketObjects addObject:product];
    }

    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:ip] withRowAnimation:UITableViewRowAnimationMiddle];
}

1 个答案:

答案 0 :(得分:0)

无论用户点击哪个(单元格或按钮),您都想执行相同的操作/方法吗?我理解你的意思吗?如果是,只需创建方法,将indexpath作为参数传递,不要创建按钮 - 只需UIImageView。