-1

我目前正在工作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是自定义单元格的一个实例,包含一个IBOutlet指向UIButton.

4

2 回答 2

1

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

于 2012-12-13T15:53:02.963 回答
0

非常感谢你!

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

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

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

于 2012-12-13T16:58:42.713 回答