我有一个简单的UICollectionViewCell,它是全角,我使用SnapKit来布局它的子视图。我为我的其他视图使用SnapKit,它工作的很好,但不在collectionViewCell中。这是我想达到的布局: collectionViewCell layoutUICollectionViewCell与SnapKit的布局
的collectionViewCell的代码是:
lazy var imageView: UIImageView = {
let img = UIImageView(frame: .zero)
img.contentMode = UIViewContentMode.scaleAspectFit
img.backgroundColor = UIColor.lightGray
return img
}()
override init(frame: CGRect) {
super.init(frame: frame)
let imageWidth = CGFloat(frame.width * 0.80)
let imageHeight = CGFloat(imageWidth/1.77)
backgroundColor = UIColor.darkGray
imageView.frame.size.width = imageWidth
imageView.frame.size.height = imageHeight
contentView.addSubview(imageView)
imageView.snp.makeConstraints { (make) in
make.top.equalTo(20)
//make.right.equalTo(-20)
//make.right.equalTo(contentView).offset(-20)
//make.right.equalTo(contentView.snp.right).offset(-20)
//make.right.equalTo(contentView.snp.rightMargin).offset(-20)
//make.right.equalToSuperview().offset(-20)
}
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
而不应用ImageView的显示左上单元中的任何约束,但施加任何限制,使图像消失。在调试视图中检查collectionViewCell会显示imageView和约束,但“大小和水平位置对UIImageView不明确”。
我也尝试设置contentView.translatesAutoresizingMaskIntoConstraints =其他事情,但结果相同。
我使用的所有代码和故事板UI或布局。
感谢您的帮助!
这工作 - THKS。对于x位置,我必须将代码更新为 - make.centerX.equalTo(contentView.snp.centerX)。虽然我的布局,我想图像拥抱单元格的右侧,所以我用make.right.equalTo(contentView.snp.rightMargin)来代替。 – Dennish