如何在Swift中使UICollection视图的背景透明,而不使其中的单元格透明

8

我有一个集合视图,并且当然也有其中的单元格。如果在属性检查器中将集合视图的alpha更改为0,则其中的单元格也变成透明的。有没有办法只使集合视图的背景透明,从而可以看到其后面的图片?


点击单元格并为其设置背景颜色。 - Simon McLoughlin
我想使它的背景透明,而不使单元格透明。 - laser2302
6个回答

11

在Swift 3中使用:

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

8
您可以将单元格颜色更改为透明,并将背景设置为nil,以查看collectionView下面的内容。像这样:
  collectionview.backgroundView = nil;
  collectionview.backgroundColor = [UIColor clearColor];

这并没有回答提问者的问题。 - Simon McLoughlin
@SimonMcLoughlin 但这个回答也解决了我的问题。 - Chen Li Yong

4

UICollectionViewCell的背景默认为透明。您可以在界面构建器中或通过子类设置单元格的背景颜色:

self.backgroundColor = UIColor.WhiteColor()

集合视图背后有一张图片,我希望它能在单元格后面显示出来。如果我将其设置为白色,则背后的图片仍然无法显示。 - laser2302
1
@laser2302 你没有读我的答案。这里有两个控件,collectionView和它的单元格。默认情况下,单元格被设置为清除。将你的collectionView设置为clear,然后转到每个单元格并给它们一个背景颜色,以覆盖默认设置的clear。 - Simon McLoughlin
1
解决了!我发现我做错了,我设置成了默认值而不是清除颜色。非常感谢你,伙计! - laser2302

3

如果您将集合视图的不透明度降至0,则整个集合视图将变为不可见。在您的情况下,您只想显示集合视图单元格,因此集合视图单元格的背景应设为UIColor.clear,以及集合视图本身的背景。可以通过编程实现,如下:

    self.collectionView.backgroundView?.backgroundColor = UIColor.clear
    self.collectionView.backgroundColor = UIColor.clear

在我的情况下,我需要像这样显示聊天记录,因此我使用了这段代码。 这是我的实例案例

1
在UICollectionView中,在属性检查器中将背景颜色设置为clearcolor。

0

从属性检查器中将 UICollectionView 的不透明度设置为 0 将使其变为透明。

P.S:

虽然不是好的做法,但可以运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接