Button 中的图像不更新 (iPhone)

Posted

技术标签:

【中文标题】Button 中的图像不更新 (iPhone)【英文标题】:Image in Button does not update (iPhone) 【发布时间】:2012-10-02 14:50:41 【问题描述】:

我正在为 ios 开发一个应用程序(仍在学习中),并且我有一个类似于组合框的按钮:单击它会打开一个带有表格视图的新场景,显示单击时返回的元素上一个场景并调用 updatePartner: 方法。到目前为止,它工作得很好。但是当我尝试更新按钮的图像时,它并没有更新它......

- (void) updatePartner:(NSInteger)index

NSLog(@"updatePartner: %i", index);

NSString *partnerImage = @"";
UIImage *image = @"";
NSString *text = @"";

switch (index)

    case 0:
        partnerImage = @"ic_pcmedic_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 1:
        partnerImage = @"ic_sapo_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 2:
        partnerImage = @"ic_telepac_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 3:
        partnerImage = @"ic_meo_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 4:
        partnerImage = @"ic_zon_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 5:
        partnerImage = @"ic_caboviaso_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 6:
        partnerImage = @"ic_artelecom_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 7:
        text = @"Ainda não sou cliente";
        break;

    default:
        break;


if (index <= 6)
    [[self partnerButton] setImage:image forState:UIControlStateNormal];
else
    [[self partnerButton] setTitle:text forState:UIControlStateNormal];

[[self partnerButton] setNeedsDisplay];
[[self view] setNeedsDisplay];

任何帮助将不胜感激!

更新:我一直在用这个,但还没有弄明白.... 我已经测试了 updatePartner 的同一类的 viewDidLoad: 方法中的方法: 它有效,当我从另一个类调用它时它不起作用......请帮助!谢谢!

问候, 里卡多·阿门多拉

【问题讨论】:

您是否将这些图像添加到项目中?图像是否属于正确的目标? 是的。而且我知道图像在项目中有效,因为我以编程方式将图像放在表格视图上(不是相同的图像)。 而且它也不适用于文本(案例 7)。 partnerButton 是否正确连接到笔尖? (验证它在运行时不为零) 我观察到 partnerButton 在 viewDidLoad 上不为空,但它在 updatePartner: 上。我不知道为什么会这样...... 【参考方案1】:

您是否为 .h 文件中的图像制作了 IBOutlets?

那么你可以这样做:

yourimagesetoutlet.image = [UIImage imageNamed: @"imagename.png"];

尝试使用它!这可能会解决你的问题

制作类似的东西

switch (index)

    case 0:
        yourimagesetoutlet.image = [UIImage imageNamed: @"imagename.png"];

        break;

【讨论】:

您的意思是为每张图片制作一个插座?我该怎么做?【参考方案2】:

你可以试试这个……

if (index <= 6) 
    [[self partnerButton] setBackgroundImage:image forState:UIControlStateNormal];
 else 
    [[self partnerButton] setTitle:text forState:UIControlStateNormal];

【讨论】:

这不是我想要的,我想要的是白色按钮背景顶部的图像。不过谢谢!! ;)

以上是关于Button 中的图像不更新 (iPhone)的主要内容,如果未能解决你的问题,请参考以下文章

将带有图像背景的 UI Button 缩放为 iphone 大小

根据之前的图像更新按钮的图像

选择一次更新按钮图像 iPad 不工作

ios 6:iPhone 5 中的背景图像视图

如何更改实体(iphone)的属性值?

vuejs - v-model 不更新类属性