我正在开发一个小型的collectionview'框架',就像iPad上的浏览器标签栏(想想chrome)一样。代码全部完成,自定义流程布局,重新排序等,并按如下方式组织:
•TabBarCollectionViewController .h / .m / .xib包含集合视图的高逻辑(委托+数据源方法)。我有xib来配置collectionView设置并设置自定义流布局(我可以通过编程方式执行此操作,但是哦,这样更容易)。
•CustomFlowLayout .h / .m(流布局的子类)
•TabBar单元格.h&m / .xib(uicollectionviewcell的子类)
然后我在我的主viewController上添加TabBarCVC作为childViewController(这个viewController有很多childViewController和子视图),然后作为子视图。在这一点上,一切都在起作用。
现在问题,它是如此愚蠢我不敢相信我还没有找到办法做到这一点,collectionView的backgroundColor不能设置为clearColor。我可以把它放在灰色或任何颜色,但它不支持透明度。细胞背景颜色也很清晰,确实有效。
我需要collectionView是透明的,以显示后面主视图上的纹理。任何洞察都会非常感激,或者我可能会将我的第一个雷达填满苹果。
如果我找不到任何解决方案,我只需添加应该在collectionView后面的纹理的“屏幕截图”,并将其添加为collectionView的backgroundView中的imageView。
在快速的这项工作与我:
self.collectionView.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0.0)
做了什么来解决它
从故事板设置集合视图背景颜色作为清晰的颜色
然后将主视图颜色设置为您想要的任何颜色(我设置为白色。)
尝试将颜色设置为清除,将背景视图设置为空视图,如此...
self.collectionView.backgroundColor = [UIColor clearColor];
self.collectionView.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];
好的,所以我现在感觉非常愚蠢。我留下了一个空的UIView,作为collectionView的容器进行测试。我只是忘了删除它,现在一切都工作正常了一个漂亮的clearColor ...
在故事板中设置集合视图背景颜色时要小心:
最初选择的值Default为Black(违反直觉)。 您必须明确选择“清除颜色”才能使视图透明。
另请注意,当“完成”时,故事板中的预览会立即发生变化...
Fogmeister的answer工作得很好。适应Swift 3,它将是:
self.collectionView.backgroundColors = [NSColor.clear]
self.collectionView.backgroundView = NSView.init(frame: CGRect.zero)
最简单的解决方案是在颜色选择器中选择任何颜色以更改collectionview背景,然后将不透明度变为0%。
我在Swift 3中解决了它:
collectionViewVideo.backgroundColor = UIColor.clear.withAlphaComponent(0)
要使用漂亮的半透明白色背景:
collectionView.backgroundColor = UIColor(displayP3Red: 1.0, green: 1.0, blue: 1.0, alpha: 0.35)
来自Fogmeister的answer的Swift 4.0
self.collectionView.backgroundColor = UIColor.clear
self.collectionView.backgroundView = UIView.init(frame: CGRect.zero)