我有一个tableview单元的子类,需要在其中包含一个UICollectionView。我现在在尝试添加UICollectionView时遇到问题。它让我添加一个新的UICollectionView,但我无法设置其约束。以下是我做同样的代码:
// Add Collection
let layout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10)
collectionProducts = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout)
contentView.addSubview(collectionProducts)
let leadingColConstraint = NSLayoutConstraint(item: collectionProducts, attribute: NSLayoutAttribute.leadingMargin, relatedBy: NSLayoutRelation.equal, toItem: contentView, attribute: NSLayoutAttribute.leadingMargin, multiplier: 1, constant: 0)
let trailingColConstraint = NSLayoutConstraint(item: collectionProducts, attribute: NSLayoutAttribute.trailingMargin, relatedBy: NSLayoutRelation.equal, toItem: contentView, attribute: NSLayoutAttribute.trailingMargin, multiplier: 1, constant: 0)
let topColConstraint = NSLayoutConstraint(item: collectionProducts, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: lblHeader, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 62)
let bottomColConstraint = NSLayoutConstraint(item: collectionProducts, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: contentView, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 55)
contentView.addConstraints([leadingColConstraint,trailingColConstraint,topColConstraint,bottomColConstraint])
collectionProducts.translatesAutoresizingMaskIntoConstraints = false
我错过了什么吗?我是Swift相对较晚的推动者,也是以编程方式创建单元格的新手。我可以使用笔尖或故事板轻松地做同样的事情,但我被困在这里。请帮忙出去。
答案 0 :(得分:0)
也许你可以避免所有这些限制,只需添加Visual Format Language约束,就像这样
contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": collectionProducts]))
contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[label][v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["label": labelHeader,"v0":collectionProducts]))
并将collectionProducts.translatesAutoresizingMaskIntoConstraints
保持为false