2009-06-13 62 views
4

我有一个球分配给Interface Builder中的UIImageView。 UIImageView中的IBOutlet连线到相应的UIViewController。图像有白色背景。当我将它分配给IB中的UIImageView时,背景是透明的。在IB中,我将UIImageView设置为透明背景和方向填充。在运行时删除UIImageView中的图像背景

当我分配的UIImageView在运行时的图像:

所述的UIImageView正方形具有白色背景其中球不显示。意味着所有四个角落。 IB版本在运行时不显示白色背景并且程序化版本有什么区别?

回答

6

除了设置背景颜色清除之外,请确保您设置了self.ball.opaque = NO;。否则,仍然会绘制白色背景。我相信你必须设置这两个,无论你使用IB还是Xcode来创建视图 - 但是IB可能已经为你设置了它们。

+0

感谢这两个建议。我的错。有一个PNG版本的JPG具有透明背景。 IB正在使用PNG,而我正在以编程方式使用JPG。啊!但是,如果图像没有透明背景,那么您可以通过简单的方式来做到这一点。不透明不会改变它。我还尝试通过包含Quartz框架和self.ball.layer.opacity = 0.0f来设置不透明度;但不能再去。修改图像是最简单的路线。 – 4thSpace 2009-06-14 01:32:50

2

如果需要以编程方式删除背景,请参阅"Bitmap Images and Image Masks"指南。在这一点上,我没有其他想法......只是使用CGImageCreateWithMaskingColors。

如果你的*。PNG(或任何图形资源文件)不具有内置的透明度(只白色背景),但IB它看起来像透明的 - 可能是阿尔法财产小于1为您的UIImageView你会看到部分透明的图像。