UICollectionView 2 不同的背景颜色

Posted

技术标签:

【中文标题】UICollectionView 2 不同的背景颜色【英文标题】:UICollectionView 2 Different Background Colors 【发布时间】:2016-07-22 11:34:41 【问题描述】:

如果用户向下滚动(基本上是在它弹起时),我会尽量避免我的 collectionview 单元格顶部的白色背景颜色。所以在我的单元格顶部只有可见的collectionview背景颜色。但如图所示,我需要 2 种不同的颜色。对于第一部分,背景应该是蓝色的,因此间隙不是白色而是蓝色,而对于其他部分,它应该保持白色。所以我想要的是白色的间隙会变成蓝色而不改变我的 uicollectionview 的完整背景色。

【问题讨论】:

不了解您的视图层次结构,但您可以尝试在此 self.view.backgroundColor 或此 self.collectionView.superview.backgroundColor 上设置蓝色。 这不起作用,因为collectionview占用了整个屏幕大小。并且具有白色背景颜色,因此从超级视图中看不到任何内容。 为什么不给collectionView设置蓝色背景颜色,然后单独更改部分? 因为那时我在底部有同样的问题。间隙是蓝色的,但底部应该保持白色! 【参考方案1】:

您可以通过在您的 UICollectionView 或 UITableView 顶部添加一个视图来实现所需的效果 - 它将与内容一起滚动并作为背景的一部分出现。

override func viewDidLoad() 
    super.viewDidLoad()
    let topView = UIView(frame: CGRect(x: 0, y: -collectionView!.bounds.height,
        width: collectionView!.bounds.width, height: collectionView!.bounds.height))
    topView.backgroundColor = .blackColor()
    collectionView!.addSubview(topView)

【讨论】:

@maxkonovalov 你会如何为底部区域做这个? @skyguy 从未尝试过,但我认为同样的方法应该没问题,只需根据contentSize 适当计算框架即可

以上是关于UICollectionView 2 不同的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

当用户滚动到不同的页面时,如何在“UICollectionView”的不同背景颜色之间淡化?

iOS UICollectionView设置组背景色

iOS UICollectionView设置组背景色

请问怎么设置Excel单元格底色,要每一行用不同的颜色区分开来

UIView 背景颜色比 UICollectionView 背景颜色深

UICollectionView 固定背景视图