如何在 UICollectionView、Swift 5、Xcode 的行下添加行
Posted
技术标签:
【中文标题】如何在 UICollectionView、Swift 5、Xcode 的行下添加行【英文标题】:How can I add line under Row of UICollectionView, Swift 5, Xcode 【发布时间】:2020-02-19 11:48:40 【问题描述】:?
我想要逐行分开。
【问题讨论】:
【参考方案1】:由于UICollectionView
的单元格没有分隔符,您可以切换到UITableView
,前提是它适合您的页面设计,或者您可以使用UIView
在UICollectionViewCell
中添加分隔符底部高度为 1。还有一些您可以尝试的第三方解决方案,您可以在 GitHub 上找到这些解决方案,例如:Solution 1、Solution 2。
【讨论】:
两个单元格之间有空格。我认为它将与标题一起使用 这可能是一种解决方法,但使用UITableView
会是更好的解决方案,因为它需要更少的分隔符编码和相同的创建单元格的工作量。【参考方案2】:
正如 Ayazmon 所说,您可以将 UIView 添加到高度为 1 的单元格中。
您可以为单元格添加底部边框。
extension CALayer
func addBorder(edge: UIRectEdge, color: UIColor, thickness: CGFloat)
let border = CALayer()
switch edge
case .top:
border.frame = CGRect(x: 0, y: 0, width: frame.width, height: thickness)
case .bottom:
border.frame = CGRect(x: 0, y: frame.height - thickness, width: frame.width, height: thickness)
case .left:
border.frame = CGRect(x: 0, y: 0, width: thickness, height: frame.height)
case .right:
border.frame = CGRect(x: frame.width - thickness, y: 0, width: thickness, height: frame.height)
default:
break
border.backgroundColor = color.cgColor
addSublayer(border)
然后
cell.layer.addBorder(edge: .bottom, color: .black, thickness: 1)
【讨论】:
两个单元格之间有空格。我认为它将与标题一起使用以上是关于如何在 UICollectionView、Swift 5、Xcode 的行下添加行的主要内容,如果未能解决你的问题,请参考以下文章