我有一个自定义 UITableViewCell。我有一个UIImageView在一个之上UIButton。现在,当我单击 时UIButton,我可以切换UIImageView类似于单选按钮的图像。
问题是,当我将其切换到“是”状态时,会调用服务器进行所需的更改。现在,当我重新加载表时,UIImageView不会更改为“是”状态。我将UIButton状态设置为“已选择”,效果很好。但UIImageView不会更改为新图像。
在更新我得到这个:

当我真正想要这个时:
默认状态是这样的:
更新后的状态和默认状态UIImageView是一样的。
这里的圆形图标是UIImageView,其余的是UIButton
这就是我一直在尝试做的事情:
在自定义UITableViewCell:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
self.karmaLogo = [[UIImageView alloc] initWithFrame:CGRectMake(self.karmaButton.frame.size.width - 40, 8, 30, 30)];
[self.karmaLogo setImage:[UIImage imageNamed:@"logo-grey"]];
self.karmaLogo.userInteractionEnabled = NO;
[self.karmaButton addSubview:self.karmaLogo];
}
在UITableView代表中:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Creates the required custom cell
if (karmaCheck == 1) // Received from the server
{
cell.karmaButton.highlighted = YES;
cell.karmaButton.selected = YES;
cell.karmaLogo.image = nil;
[cell.karmaLogo setImage:[UIImage imageNamed:@"logo-black"]];
[cell.karmaLogo setNeedsDisplay];
[cell bringSubviewToFront:cell.karmaLogo];
}
else
{
cell.karmaButton.highlighted = NO;
cell.karmaButton.selected = NO;
cell.karmaLogo.image = nil;
[cell.karmaLogo setImage:[UIImage imageNamed:@"logo-grey"]];
[cell.karmaLogo setNeedsDisplay];
[cell bringSubviewToFront:cell.karmaLogo];
}
执行确实会在需要时同时进入 if 和 else 块,但不会更改图像。但是 karmaButton ( UIButton) 的突出显示和选择工作正常。