我正在开发一个小型的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。
答案 0 :(得分:73)
答案 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)
self.collectionView.backgroundColor = UIColor.clear
self.collectionView.backgroundView = UIView.init(frame: CGRect.zero)
答案 9 :(得分:0)
该如何解决
从情节提要中将集合视图的背景颜色设置为纯色
然后将主视图颜色设置为所需的任何颜色,(我设置为白色。)