Swift 如何使用 SnapKit 使 UIView 等宽等高?

how to make UIView with equal width and height with SnapKit in Swift?

我想在 Swift 中用 SnapKit 制作一个 UIView 矩形,像这样

lazy var customView: UIView = {
        let view = UIView(frame: CGRect())
        self.addSubview(view)
        view.snp.makeConstraints({ (make) in
            make.left.top.bottom.equalToSuperview().inset(self.inset)
            make.width.equalTo(make.height)  // Error in this line
        })
        return view
    }()

您必须使用 view.snp.height 而不是 make.height:

lazy var customView: UIView = {
    let view = UIView(frame: CGRect())
    self.addSubview(view)
    view.snp.makeConstraints({ (make) in
        make.left.top.bottom.equalToSuperview().inset(self.inset)
        make.width.equalTo(view.snp.height) // <---
    })
    return view
}()

如果你在同一个父视图上有 2 个视图,你可以做下一步:

    view1.snp.makeConstraints { (make) in
        make.leading.equalToSuperview()
        make.bottom.equalToSuperview()
        make.top.equalToSuperview()
    }

    view2.snp.makeConstraints { (make) in
        make.trailing.equalToSuperview()
        make.bottom.equalToSuperview()
        make.top.equalToSuperview()
        make.leading.equalTo(view1.snp.trailing)
        make.width.equalTo(view1.snp.width)
    }

和结果

以同样的方式,使用 view.snp.widthview.snp.height 您可以使用 SnapKit

设置视图相等
    view.snp.makeConstraints({ (make) in
        make.left.top.bottom.equalToSuperview().inset(self.inset)
        make.width.equalTo(view.snp.height) 
    })