UITableView 中的 UIButton,选择器应用于多个按钮

Posted

技术标签:

【中文标题】UITableView 中的 UIButton,选择器应用于多个按钮【英文标题】:UIButton in UITableView, selector applied on several buttons 【发布时间】:2012-12-13 15:32:50 【问题描述】:

我目前在UITableView 中工作,每个单元格都包含一个按钮,背景中带有特定的UIImage。我想在单元格中单击按钮时更改此图像。

我有这段代码,运行良好,但是当我点击一个按钮时,有几个按钮被修改 - 每 5 个按钮,不知道为什么。代码如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    [myCell.favorite addTarget:self action:@selector(pressed_fav:) forControlEvents:UIControlEventTouchUpInside];

    return myCell;


- (void)pressed_fav:(id)sender

    UIButton *myButton = sender;

    [myButton setBackgroundImage:[UIImage imageNamed:@"star.png"] forState:UIControlStateNormal];

myCell 是一个自定义单元格的实例,包含一个指向UIButtonIBOutlet 'favorite'。

【问题讨论】:

您可以发布您的 tableView:ellForRowAtIndexPath 的完整代码吗? 【参考方案1】:

这是因为UITableView 重复使用了单元格。 您必须在 cellForRowAtIndexPath 方法中有一些逻辑来识别按钮的图像。

【讨论】:

【参考方案2】:

非常感谢你!

实际上,当我删除该行时:

myCell = [tableView dequeueReusableCellWithIdentifier:@"cinemaCell"];

它不显示单元格(它被很好地分配和初始化)。

【讨论】:

没关系,我只是忘记每次都初始化全新的单元格,对不起!

以上是关于UITableView 中的 UIButton,选择器应用于多个按钮的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 UITableView 需要在场景大纲中的 UIButton 下面

UIViewController 中的 UIButton 而不是 UITableView 的问题

UITableView 单元格中的 UIButton,例如“删除事件”

在 UITableView 中的 Scrolling Filmstrip 中的每个 UICollectionViewCell 中添加 UIButton

使用 UIButton 清除 UITableView 中的所有 UITextField 更改

UITableView 中的 UIButton,选择器应用于多个按钮