带有黑色背景的 alpha 图像绘制其他白色...?

Posted

技术标签:

【中文标题】带有黑色背景的 alpha 图像绘制其他白色...?【英文标题】:Image with alpha draw with black background others with white...? 【发布时间】:2016-06-22 19:43:36 【问题描述】:

我有这个显示缩略图的UICollectionView。这些缩略图是从远程服务器上的图像创建的,其中一些图像包含透明度。当这些图像被下载并为细胞小型化时,有时相同的图像显示为黑色背景,有时显示为白色。

这就是这些颜色的来源:

UICollectionViewCell

不透明 = 开启 清除图形上下文 = 开启 剪辑子视图 = 开启 自动调整子视图 = 开启 背景颜色 = 默认

单元格内的ImageView

不透明 = 开启 清除图形上下文 = 开启 剪辑子视图 = 关闭 自动调整子视图 = 开启 背景颜色 = 默认 色调 = 默认

收藏视图 * 背景颜色 = 黑色

黑色是集合视图的背景颜色。由于某种原因,在单元格内绘制的透明图像会使不透明的整个单元格变得透明并显示集合视图背景颜色。

在将图像分配给图像视图之后,我添加了这两行,只是为了检查。不用找了。我检查了分配的图像,它们没问题。如果我将集合视图颜色更改为红色,那么红色将显示在那里。

[thumbnailView setNeedsDisplay];
[thumbnailView setNeedsLayout];

我该如何解决?

【问题讨论】:

【参考方案1】:

我不会触及 UIviews 上的任何默认设置。默认值可能是正确的。

我认为您的集合视图单元格中存在重用问题,您没有正确设置背景颜色。 (黑白等)

我会通过在图像视图上设置背景颜色(例如红色)并检查它是否通过图像的 alpha 部分出现来验证这一点

【讨论】:

P E R F E C T ! !解决方案是让白色成为图像视图的背景色!谢谢!

以上是关于带有黑色背景的 alpha 图像绘制其他白色...?的主要内容,如果未能解决你的问题,请参考以下文章

如何在白色背景上的Open GL ES中显示彩色纹理画笔?

Android opengl 画文字,怎么把文字后面的黑色背景去掉

IDEA中怎么设置黑色或白色背景

使图像出现在黑色背景后面

UIImage 遮罩在 iPhone 上提供黑色背景(而不是在模拟器中)

叠加在图像上时,使文本显示为白色,具有半透明的黑色背景