iOS - UITableView中的UIButton setImage未更新

时间:2014-05-23 17:01:23

标签: ios objective-c uitableview uibutton

我想在表格视图中更新按钮图像。当我的表视图最初加载时,按钮图像是正确的。但是当我向下滚动时,新单元格不会更新到我的新图像;他们只是重复使用初始集中的随机旧图像。我尝试过setImagesetBackgroundImage。这是我的cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0)
    {
        SSKGrooveCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"grooveCell" forIndexPath:indexPath];

        SSKSongCellInfo *entry = [_objects objectAtIndex:indexPath.row];

        NSArray *icons = [plistHelper iconsForGroove:entry.metadata.title];
        NSString *icon = [icons objectAtIndex:0];
        NSString *iconImgString = [NSString stringWithFormat:@"element_%@_grooves", icon];
        NSString *iconImgWithExt = [NSString stringWithFormat:@"%@.png", iconImgString];
        [cell.inst1Button setBackgroundImage:[UIImage imageNamed:iconImgWithExt] forState:UIControlStateNormal];
        cell.titleLabel.text = entry.metadata.title;
        return cell;
    }
    return  nil;
}

2 个答案:

答案 0 :(得分:0)

要进行快速测试,请在cellForRowAtIndexPath

中添加此行
cell.imageView.image = [UIImage imageNamed:iconImgWithExt];

你看到正确的图像吗?

  • 如果不是,请检查图像和图像名称
  • 如果是,请检查您的inst1Button IBOutlet连接。

答案 1 :(得分:0)

我刚在应用上遇到过这个问题。结果发现iOS 7.1中有关UITableView中的UIButton的错误。在设置图像后,您需要在按钮上调用setNeedsLayout。 E.g:

[cell.inst1Button setNeedsLayout];