【问题标题】:UIImageView.image is always nil after assigning a valid UIImage分配有效的 UIImage 后 UIImageView.image 始终为零
【发布时间】:2013-11-05 12:40:46
【问题描述】:

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

但是,如果我将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;
}

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

感谢您的关注,对于不完整的问题,我们深表歉意。

已编辑:

如果你执行

po self.theRecomendationImage.image 

在执行赋值前后的调试控制台中:self.theRecomendationImage.image = theImageToTint;值为 nil。

已编辑:

如果您通过代码添加UIImageView,它会在您为其分配新图像时工作并更新,这让我指出一些Storyboard 问题。

是否有任何工具可以验证情节提要?

【问题讨论】:

  • 你能给我看一些代码吗,比如你在哪里设置了这个 UIImage?
  • 没有看到任何代码(你应该发布)。我猜你是在viewDidLoad 或其他类似的方法中设置图像。如果是这种情况,请尝试将其设置为 viewWillAppear: 再次,没有看到代码我只是在黑暗中拍摄。
  • 是的@Firo 我也这么认为:)
  • 我知道你说IBOutlet连接正常但是用这个方法打印self.theRecomendationImage看看是不是nil。
  • 这个你想出来了吗?我在 iOS7 上遇到了同样的问题,但在 iOS6.1 上有效。

标签: ios iphone objective-c uiimageview uiimage


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 2012-01-16
    • 2020-01-07
    • 1970-01-01
    相关资源
    最近更新 更多