如何在 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,前提是它适合您的页面设计,或者您可以使用UIViewUICollectionViewCell 中添加分隔符底部高度为 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 的行下添加行的主要内容,如果未能解决你的问题,请参考以下文章

swif解决手势冲突

Swif基础语法01

swif tableview全选

swif-throws异常抛出

Swif语法基础 要点归纳

登录屏幕 SWIF5 后返回上一个 viewController