Swift 单元格间距UICollectionViewLayout

Swift 单元格间距UICollectionViewLayout,swift,uicollectionview,cell,uicollectionviewlayout,Swift,Uicollectionview,Cell,Uicollectionviewlayout,我目前使用的树形图框架布局完全用Swift编码: 我创建了自己的Layout类以自定义单元格,如下所示: import UIKit class Layout: UICollectionViewLayout { var rects = [CGRect]() { didSet { invalidateLayout() } } override func shouldInvalidateLayout(forBound

我目前使用的树形图框架布局完全用Swift编码:

我创建了自己的Layout类以自定义单元格,如下所示:

import UIKit

class Layout: UICollectionViewLayout {

    var rects = [CGRect]() {
        didSet {
            invalidateLayout()
        }
    }

    override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool {
        return true
    }

    override var collectionViewContentSize: CGSize {
        return self.collectionView?.frame.size ?? .zero
    }

    override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
        let attrs = UICollectionViewLayoutAttributes(forCellWith: indexPath)
            attrs.frame = rects[indexPath.item]
        return attrs
    }

    open override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {

        var index = 0

        return rects.compactMap { (itemRect: CGRect) -> UICollectionViewLayoutAttributes? in
            let attrs = rect.intersects(itemRect) ?
                self.layoutAttributesForItem(at: IndexPath(item: index, section: 0)) : nil

            index += 1

            return attrs
        }

    }
}
但是,我无法在单元格之间插入空格。我尝试了很多方法,比如分段的最小线间距,但没有成功

这就是我所拥有的:这就是我所需要的:


有什么想法吗?提前多谢

您可能需要更改定义自定义UICollectionViewCell布局的约束。请参见YMTreeMap附带的示例。在目标YMTreeMap iOS中,通过更改override initframe:CGRect中的以下代码行:

您可以获得以下视图:


你能添加一个屏幕截图来显示你所看到的,以及你所寻找的结果吗?好的,这就是我所拥有的:这就是我所需要的:请回答你的问题并添加这些图片。
    colorView.widthAnchor.constraint(equalTo: contentView.widthAnchor, constant: -1.0).isActive = true
    colorView.heightAnchor.constraint(equalTo: contentView.heightAnchor, constant: -1.0).isActive = true
    colorView.widthAnchor.constraint(equalTo: contentView.widthAnchor, constant: -8.0).isActive = true
    colorView.heightAnchor.constraint(equalTo: contentView.heightAnchor, constant: -8.0).isActive = true