在分配有效的UIImage之后,UIImageView.image始终为nil

时间:2013-11-05 12:40:47

标签: ios iphone objective-c uiimageview uiimage

我在UIImageView视图中StoryBoardIBOutlet连接正确(对此进行了双重和三重检查),要显示的图像被添加到正确的目标中等等(已经调试了一天)如果我在Interface Builder中设置它们,UIImageView显示图像。

但是如果我将UIImageView.image属性设置为有效的UIImage(我甚至可以在调试时看到预览)加载任何图像,它总是显示第一个图像,而不是新图像,或者如果我在IB中留空了它保持零值。

这只发生在这个视图中,如果我在StoryBoard的另一个视图中尝试相同的事情,UIImageView正确显示UIImage的内容。

任何线索我们都会非常感激。

编辑:

感谢您的回复,还测试了从按钮设置它,代码是这段代码:

财产声明是:

@property (strong, nonatomic) IBOutlet UIImageView *theRecomendationImage;

已经测试过弱和强,只是为了确定。

IBAction实现(测试它被调用)

- (IBAction)changeImage {

    UIImage *theImageToTint = [UIImage imageNamed:@"Sunny"];
//    theImageToTint = [theImageToTint imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
    self.theRecomendationImage.tintColor = [UIColor yellowColor];
    self.theRecomendationImage.image = theImageToTint;
}

调试时如果检查了ImageToTint的值,它是一个有效的图像(不是nil),你甚至可以快速查看图像。但是当我将它分配给UIImageView时,值总是为零。没有错误,只需保持无效。

感谢您的关注,对不完整的问题感到抱歉。

编辑:

如果你执行

po self.theRecomendationImage.image 

在执行赋值之前和之后的调试控制台中:self.theRecomendationImage.image = theImageToTint;价值是零。

编辑:

如果您按代码添加UIImageView,那么当您为其分配新图片时,它会正常运行并进行更新,这会让我指出一些Storyboard问题。

是否有任何工具可以验证故事板?

1 个答案:

答案 0 :(得分:1)

只需确保图片格式为.png,而不是.jpg或其他任何形式。