iPhone - UITableViewCell中的按钮不会更改图像

时间:2011-11-17 09:29:18

标签: iphone uitableview uiimageview uibutton uiimage

我正在尝试使用Xcode 4.2故事板创建一些单元格,并使用Interface Builder创建自定义单元格。我把单元格设置得很好,我有一个按钮,当我按下按钮时,我试图拥有它,图像会改变,但它似乎不起作用。这就是我所拥有的

- (IBAction)sendToFavorites:(id)sender {
    UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview];
    int row = [feedTableView indexPathForCell:cell].row;
    NSLog(@"\"%@\" is FAVORITED", [[_allEntries objectAtIndex:row] articleTitle]);
    if ([[_allEntries objectAtIndex:row] isFavorited]) {
        NSLog(@"Unfavorite");
        [[_allEntries objectAtIndex:row] setFavorite:NO];
        [[sender imageView] setImage:[UIImage imageNamed:@"StarEmpty"]];
    } else {
        NSLog(@"Favorite");
        [[_allEntries objectAtIndex:row] setFavorite:YES];
        [[sender imageView] setImage:[UIImage imageNamed:@"StarFilled"]];
    }
}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以尝试刷新表格视图的内容。即,在设置与单元格关联的新图像后,在表格视图上调用reloadData

据我所知,您正在尝试直接修改单元格内容。相反,这应该通过控制重绘表的dequeueReusableCellWithIdentifier机制来实现。因此,只需:修改数据源,然后重绘表格。

希望这有帮助。

答案 1 :(得分:0)

想出来。

    [sender setImage:[UIImage imageNamed:@"StarEmpty"] forState:UIControlStateNormal];

不能单独设置,必须将其设置为状态,是否为突出显示,正常等。