多个UIImageViews的一个UIImage实例作为背景

时间:2014-09-30 14:55:23

标签: ios objective-c

我的应用程序层次结构中有多个UIImageViews,我需要为它们设置一个UIImage,它们能够同时更改所有UIImageViews的图像。所以我创建了UIImage作为单例模式,然后我为每个UIImageView设置了这个图像实例。问题是,当更改单例图像时,UIImageViews正在保留旧图像,而不是新分配的图像。您可以对多个视图或屏幕的背景更改以及仅通过更改UIImage实例来一次更改该背景的情况进行成像。为什么UIImageViews没有更新?我不太了解在UIImageView中绘制图像,但我需要了解这种行为。而且我不想在每个屏幕上添加新图像,然后更改所有图像以实现新的"背景效果"。感谢

2 个答案:

答案 0 :(得分:1)

如果您希望应用中的{strong>全部 UIImageView应用新背景,您可以执行[[UIImageView appearance] setBackgroundColor:[UIColor colorWithPatternImage:yourImage]]

之类的操作

(这不是一个非常合适的解决方案,因为UIImageView通常应该使用其image属性,而不是backgroundColor属性

答案 1 :(得分:0)

您可能想要创建一个方法,一次更新所有UIImageView个实例。例如:

- (void)updateImage:(UIImage *)image { self.imageViewA.image = image; self.imageViewB.image = image; self.imageViewC.image = image; self.imageViewD.image = image; self.imageViewE.image = image; self.imageViewF.image = image; self.imageViewG.image = image; self.imageViewH.image = image; }

如果您只是创建背景图案,我建议您遵循Davide的方法。

=====

编辑:继续评论中的讨论后,您可以更简洁地使用以下方式实现:

- (void)updateImage:(UIImage *)image { for (UIImageView *subview in self.viewArray) { subview.image = image; } }