我有一个自定义 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
) 的突出显示和选择工作正常。