我在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版本在运行时没有显示白色背景而程序版本有什么区别?
答案 0 :(得分:6)
除了设置要清除的背景颜色外,还要确保设置self.ball.opaque = NO;
。否则,仍会绘制白色背景。我相信你必须设置这两个是否使用IB或Xcode来创建视图 - 但IB可能已经为你设置它们。
答案 1 :(得分:2)
如果您需要以编程方式删除背景,请参阅"Bitmap Images and Image Masks"指南。关于这一点,我没有其他想法...只使用CGImageCreateWithMaskingColors。
如果您的* .PNG(或任何图形资源文件)没有内置透明度(只是白色背景)但IB看起来像透明 - 可能 alpha 属性少于1为你的UIImageView,你看到部分透明的图像。