分配有效的 UIImage 后 UIImageView.image 始终为零
Posted
技术标签:
【中文标题】分配有效的 UIImage 后 UIImageView.image 始终为零【英文标题】:UIImageView.image is always nil after assigning a valid UIImage 【发布时间】: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 上有效。
【参考方案1】:
只需确保图像格式为.png
而不是.jpg
或其他任何格式。
【讨论】:
以上是关于分配有效的 UIImage 后 UIImageView.image 始终为零的主要内容,如果未能解决你的问题,请参考以下文章
当动画 UIImage 被分配两次时,UITableViewCell 中的 UIImageView 没有动画
后退按钮后未释放 UITableViewCell 的 UIImage 的内存