Swift 单元格间距UICollectionViewLayout
我目前使用的树形图框架布局完全用Swift编码: 我创建了自己的Layout类以自定义单元格,如下所示: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
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