首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义UIImageView中的UIITableViewCell不切换重新加载

自定义UIImageView中的UIITableViewCell不切换重新加载
EN

Stack Overflow用户
提问于 2013-09-06 14:31:53
回答 2查看 117关注 0票数 0

我有一个定制的UITableViewCell。我在UIImageView上有一个UIButton。现在,当我单击UIButton时,我可以切换UIImageView的图像--类似于单选按钮。

问题是,当我切换到状态为“是”时,会调用服务器进行所需的更改。现在,当我重新加载表时,UIImageView不会更改为'YES‘状态。我将UIButton状态设置为“Selected”,这很好。但是UIImageView并没有改变成新的形象。

在最新消息中我得到了这样的信息:

当我真的想要这个的时候

默认状态是:

UIImageView的更新状态和默认状态相同。

在这里,圆形图标是UIImageView,其余的是UIButton

这就是我一直想做的:

在自定义UITableViewCell

代码语言:javascript
运行
复制
- (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代表中:

代码语言:javascript
运行
复制
- (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)的选择效果很好。

EN

Stack Overflow用户

发布于 2013-09-06 16:43:55

您要将图像添加为按钮的子视图,因此当您突出显示该按钮时,图像将被高亮显示。我认为,您看到问题的原因是,当您没有显式设置突出显示的图像时,UIImageView中出现了错误。因此,与其切换图像,不如在if-else块之外执行以下操作:

代码语言:javascript
运行
复制
[cell.karmaLogo setImage:[UIImage imageNamed:@"logo-grey"]];
[cell.karmaLogo setHighlightedImage:[UIImage imageNamed:@"logo-black"]];
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18660235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档