我有一个带有3个复选标记按钮的UITableViewCell。每个复选标记按钮都是自定义UIButton(只是图像真的),并在自定义UITableViewCell子类中有一个插座。在cellForRowAtIndexPath方法中,我
[cell.firstcheckmark addTarget:self action:@selector(checkmarkPressed:) forControlEvents:UIControlEventTouchUpInside];
[cell.secondcheckmark addTarget:self action:@selector(checkmarkPressed:) forControlEvents:UIControlEventTouchUpInside];
[cell.thirdcheckmark addTarget:self action:@selector(checkmarkPressed:) forControlEvents:UIControlEventTouchUpInside];
- (void)checkmarkPressed:(id)sender {
// how do I get which checkmark was pressed?
}
我不知道如何从发件人对象中获取按钮。其他时候我可以使用按钮的标题,但在这种情况下,除了它们的插座外,所有按钮都是相同的。如何获得按下哪个按钮?或者他们每个人都需要调用不同的方法,然后在这三种方法中的每一种中,我都可以通过从这三种方法中的每一种调用相同的modelUpdateMethod来更新我的模型?感谢。
答案 0 :(得分:2)
您可以通过标记识别它们:
cell.firstcheckmark.tag = 0;
然后
- (void)checkmarkPressed:(id)sender {
UIButton *button = (UIButton*)sender;
if(button.tag == 0)
{
...
}
...
}
答案 1 :(得分:0)
我认为你也可以使用:
UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview];
它可以获得按钮所在的单元格。