我必须创建一个连续3 UICollectionViewCell
的UI。所以我使用UICollectionViewController
创建了它,其中section = 1且没有来自api的rows =。所以我能够创建6个单元格,其中每行包含3个单元格。这些细胞垂直和水平分开0.5磅。
我已经将collectionView的背景颜色赋予了分隔符。
问题: -
这是我UICollectionViewController
要求的类型
分隔符需要为红色,未渲染的空间需要为黄色。但我无法做到这一点,我可以为UICollectionView
提供单一的背景颜色,显示分隔符和可用空间。有没有办法让不同的颜色。
我不想使用UITableView并在UITableViewCell
内部有一个UICollectionView。我知道这种方法,但我想在UICollectionViewController
中做同样的事情。
答案 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)