在UIImageView中更改Image的背景颜色

时间:2014-01-21 21:17:40

标签: ios iphone uiimageview uicolor

在我的一个ViewController中,我有一个图像"白色背景"在ImageView中,我需要能够动态更改图像背景颜色。我不确定它是否可能只改变图像背景颜色而不是ImageView的背景颜色。我看到的另一个选择是拥有不同颜色的多个图像并在运行中更改图像?是否有更好的方法来处理这种情况?在此先感谢。

3 个答案:

答案 0 :(得分:0)

我认为你不能改变图像的背景颜色。你可以像你说的那样改变UIImageView的背景颜色。也许您可以使用不同颜色的多个图像并根据您的要求加载它们。

答案 1 :(得分:0)

我可能会按你说的那样去做。只需拥有多个图像并以编程方式更改它们。我不相信有一种简单的方法可以按照你想要的方式编辑图像。

答案 2 :(得分:0)

您需要使用OpenGL。为此,我使用了一个名为Sparrow的游戏框架。 Sparrow是一款用于制作iOS游戏的OpenGL包装器。我有几个白色的“瓷砖”,我编程改为不同的颜色。它与您想要的相反,因为您希望在更改“前景”的地方更改“背景”。也就是说你可以使用蒙版图像来达到预期的效果。

最棒的是,您可以在SPSprite对象中将不同的图像堆叠在一起。您可以在精灵中创建一个白色SPQuad对象作为“后”对象,然后使用setColor:ofVertex:更改SPQuad的颜色,使图像保持前景不变,前提是它具有相关的透明度在正确的地方。

所涉及的类称为SPImage,调用的方法为setColor:ofVertex:(继承自SPQuad

唯一的缺点是你必须重写你的应用程序,因为OpenGL层占据了顶层,你需要调用一个特殊的函数来显示iOS控件,如导航控制器和按钮。它意味着完全定制项目的胆量。