首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >addTarget:action:forControlEvents:从UITableViewCell

addTarget:action:forControlEvents:从UITableViewCell
EN

Stack Overflow用户
提问于 2011-12-13 02:15:15
回答 2查看 1.3K关注 0票数 0

我有一个带有3个复选标记按钮的UITableViewCell。每个复选标记按钮都是一个自定义的UIButton (实际上只是图像),并且在自定义的UITableViewCell子类中有一个插座。在cellForRowAtIndexPath方法中,我

代码语言:javascript
复制
[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来更新我的模型?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-13 02:24:30

您可以通过它们的标签来识别它们:

代码语言:javascript
复制
cell.firstcheckmark.tag = 0;

然后

代码语言:javascript
复制
- (void)checkmarkPressed:(id)sender {

   UIButton *button = (UIButton*)sender;

   if(button.tag == 0)
   {
      ...
   }
   ...
}
票数 2
EN

Stack Overflow用户

发布于 2012-07-20 17:59:08

我认为您还可以使用:

代码语言:javascript
复制
UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview];

它可以获取按钮在哪个单元格中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8478878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档