UICollectionViewController中的不同背景和collectionCell分隔符颜色

时间:2017-03-18 10:59:48

标签: ios iphone xcode uicollectionview uicollectionviewlayout

我必须创建一个连续3 UICollectionViewCell的UI。所以我使用UICollectionViewController创建了它,其中section = 1且没有来自api的rows =。所以我能够创建6个单元格,其中每行包含3个单元格。这些细胞垂直和水平分开0.5磅。 我已经将collectionView的背景颜色赋予了分隔符。

特别是我需要的是: - CollectionViewCntroller

问题: - 这是我UICollectionViewController要求的类型 分隔符需要为红色,未渲染的空间需要为黄色。但我无法做到这一点,我可以为UICollectionView提供单一的背景颜色,显示分隔符和可用空间。有没有办法让不同的颜色。

我不想使用UITableView并在UITableViewCell内部有一个UICollectionView。我知道这种方法,但我想在UICollectionViewController中做同样的事情。

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你可以通过删除单元格之间的空间来解决这个问题。完全移除0.5pt空间。然后,所有单元格将相互粘合,您可以在每个单元格中创建自己的分隔符。但是它需要一些逻辑,因为所有单元格都不应该使用相同的分隔符(如果这样做,那么中心单元格的每一侧都会有双重分隔符。)

要获得照片,您可以设置以下规则:

每行中的第一个 last 单元格应仅在底部显示分隔符。 中间的所有其他单元格(在您的情况下,中间的一个单元格)应该在底部,左侧,右侧显示分隔符。

要添加这些分隔符,只需进入自定义UICollectionViewCell并为每一侧添加一些UIViews,并将它们设置为宽度为0.5pt,并根据需要设置它们。

答案 1 :(得分:0)

我建议使用Sti建议的自定义单元格。我通常这样做。但更简单的方法是:

  

每次重新加载数据时,都要将子视图添加到collectionView   集合视图。

<强>代码:

let count: CGFloat = CGFloat(items.count)
let numberOfRows: CGFloat = ceil(count / 3.0)
let height: CGFloat = numberOfRows * (cellHeight + seperatorHeight)
if collectionBackView != nil { // controller member object
    collectionBackView.removeFromSuperview()
}

collectionBackView = UIView(frame: 
    CGRect(x: 0, y: 0, width: collectionView.frame.size.width, height: height))
collectionView.addSubview(collectionBackView)
collectionView.sendSubview(toBack: collectionBackView)