4

我在 Interface Builder 中有一个分配给 UIImageView 的球。来自 UIImageView 的 IBOutlet 连接到相应的 UIViewController。图像具有白色背景。当我将它分配给 IB 中的 UIImageView 时,背景是透明的。在 IB 中,我将 UIImageView 设置为透明背景和方面填充。

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

self.ball.image = ballImage; //ballImage is a UIImage
self.ball.backgroundColor = [UIColor clearColor];
self.ball.contentMode = UIViewContentModeScaleAspectFill;

UIImageView 正方形有一个白色背景,球不显示。意思是所有四个角。IB 版本在运行时不显示白色背景和编程版本有什么区别?

4

2 回答 2

6

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

于 2009-06-14T01:24:15.460 回答
2

如果您需要以编程方式删除背景,您可以参考“位图图像和图像蒙版”指南。在这一点上我没有其他想法......只是使用 CGImageCreateWithMaskingColors。

如果您的 *.PNG(或任何图形资源文件)没有内置透明度(只有白色背景)但使用 IB 它看起来像透明 - 可能是您的 UIImageView 的alpha属性小于 1 并且您看到部分透明的图像.

于 2009-06-14T00:38:53.790 回答