定位点在集合视图单元格布局中不起作用



我想将集合视图添加到我的自定义收藏视图控制器的单元格中,在前导和尾随位置都有常量空间,我尝试了锚点类型和虚拟格式类型,但似乎锚点不能按我想要的方式工作。 缺少尾随空格。

这是我的代码:

class CategoryCell: UICollectionViewCell, UICollectionViewDelegateFlowLayout {
override init(frame: CGRect) {
super.init(frame: frame)
setupViews()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
let appView:UICollectionView = {
let layout = UICollectionViewFlowLayout()
let view = UICollectionView(frame: .zero, collectionViewLayout: layout)
view.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = UIColor.blue
return view
}()
func setupViews() {
contentView.addSubview(appView)
let layoutGuide = contentView.layoutMarginsGuide
appView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor, constant: 8).isActive = true
appView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor, constant: 8).isActive = true
appView.topAnchor.constraint(equalTo: layoutGuide.topAnchor).isActive = true
appView.bottomAnchor.constraint(equalTo: layoutGuide.bottomAnchor).isActive = true
//      addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-8-[v0]-8-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": appView]))
//      addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": appView]))
}
}

带锚点的布局

但是如果你使用旧的虚拟格式风格,它工作正常,这让我感到困惑

使用虚拟格式字符串布局

尾随锚点约束的常量值需要为 -8 而不是 8。

appView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor, constant: -8).isActive = true

最新更新