CollectionView背景clearColor无法正常工作

时间:2013-05-15 16:25:43

标签: ios uicollectionview uibackgroundcolor

我正在开发一个小型的collectionview'框架',就像iPad上的浏览器标签栏(想想chrome)一样。代码全部完成,自定义流程布局,重新排序等,并按如下方式组织:

•TabBarCollectionViewController .h / .m / .xib包含集合视图的高逻辑(委托+数据源方法)。我有xib来配置collectionView设置并设置自定义流布局(我可以通过编程方式执行此操作,但是哦,这样更容易)。

•CustomFlowLayout .h / .m(流程布局的子类)

•TabBarCell .h / .m / .xib(collectionviewcell的子类)

然后我在我的主viewController上添加TabBarCVC作为childViewController(此viewController有许多childViewController和子视图),然后作为子视图。 在这一点上,一切都在发挥作用。

现在问题,它是如此愚蠢我无法相信我没有找到办法做到这一点, collectionView的backgroundColor无法设置为clearColor 。我可以把它放在灰色或任何颜色,但它不支持透明度。细胞背景颜色也很清晰,确实有效。

我需要将collectionView透明,以便在后面的主视图上显示纹理。任何洞察都会非常感激,或许我会把我的第一个雷达填满苹果。

如果我找不到任何解决方案,我只需添加应该在collectionView后面的纹理的“屏幕截图”,并将其添加为collectionView的backgroundView中的imageView。

10 个答案:

答案 0 :(得分:73)

在我的情况下,我将故事板中的背景颜色设置为默认值。这导致它具有黑色背景。将其更改为“清除颜色”。

enter image description here

答案 1 :(得分:46)

尝试将颜色设置为清除,将背景视图设置为空视图,如此...

self.collectionView.backgroundColor = [UIColor clearColor];
self.collectionView.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];

答案 2 :(得分:10)

好的,所以我现在感觉非常愚蠢。我留下了一个空的UIView,作为collectionView的容器进行测试。我只是忘了删除它,现在一切都工作正常了一个漂亮的clearColor ......

答案 3 :(得分:7)

在故事板中设置 UICollectionView 的背景颜色时注意:

最初选择的值默认黑色(违反直觉)。
您必须明确选择清除颜色才能使视图透明。

另请注意,当“完成”时,故事板中的预览会立即发生变化......

答案 4 :(得分:2)

Fogmeister' answer效果很好。适应Swift 3,它将是:

self.collectionView.backgroundColors = [NSColor.clear]
self.collectionView.backgroundView = NSView.init(frame: CGRect.zero)

答案 5 :(得分:2)

最简单的解决方案是在颜色选择器中选择任何颜色以更改collectionview背景,然后将不透明度设为0%。

答案 6 :(得分:1)

我在Swift 3中解决了它:

collectionViewVideo.backgroundColor = UIColor.clear.withAlphaComponent(0)

答案 7 :(得分:0)

要使用漂亮的半透明白色背景:

collectionView.backgroundColor = UIColor(displayP3Red: 1.0, green: 1.0, blue: 1.0, alpha: 0.35)

答案 8 :(得分:0)

来自Fogmeisteranswer

的Swift 4.0
self.collectionView.backgroundColor = UIColor.clear
self.collectionView.backgroundView = UIView.init(frame: CGRect.zero)

答案 9 :(得分:0)

该如何解决

从情节提要中将集合视图的背景颜色设置为纯色

然后将主视图颜色设置为所需的任何颜色,(我设置为白色。)