在运行时删除 UIImageView 中的图像背景

发布于 2024-07-24 11:00:08 字数 493 浏览 8 评论 0原文

我在 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 版本在运行时不显示白色背景和编程版本有什么区别?

I have a ball assigned to a UIImageView in Interface Builder. An IBOutlet from the UIImageView is wired to a corresponding UIViewController. The image has a white background. When I assign it to the UIImageView in IB, the background is transparent. In IB, I have the UIImageView set to a transparent background and aspect fill.

When I assign the UIImageView an image at runtime:

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

the UIImageView square has a white background where the ball doesn't display. Meaning all four corners. What is the difference that the IB version doesn't show a white background at runtime and the programmatic version does?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

上课铃就是安魂曲 2024-07-31 11:00:09

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

Make sure you set self.ball.opaque = NO; in addition to setting the background color to clear. Otherwise, a white background will still be drawn. I believe you have to set both of these whether you use IB or Xcode to create the view - but IB may have set them both for you.

咽泪装欢 2024-07-31 11:00:09

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

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

If you need to remove background programmatically you may refer to "Bitmap Images and Image Masks" guide. I have no other idea on this point...just using CGImageCreateWithMaskingColors.

In case your *.PNG (or any graphic resource file) doesn't have built-in transparency (just white background) but with IB it looks like transparent - may be alpha property less then 1 for your UIImageView and you see partially transparent image.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文