9

我想在 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
    }()
4

3 回答 3

20

您必须使用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
}()
于 2016-10-26T09:11:38.110 回答
4

如果您在同一个超级视图上有 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设置视图的相等性

于 2017-01-04T11:05:42.277 回答
-1
    view.snp.makeConstraints({ (make) in
        make.left.top.bottom.equalToSuperview().inset(self.inset)
        make.width.equalTo(view.snp.height) 
    })
于 2018-03-06T07:00:48.770 回答