如何使用 SnapKit 在 iOS 中使用宽高比约束?

Ráf*_*gan 1 ios swift snapkit

我尝试使用 snapkit 创建 1:1 的宽高比约束。如果我使用故事板,可以简单地使用宽高比约束工具来实现,但使用 SnapKit,这似乎并不那么容易。

我怎样才能做到这一点?

Ráf*_*gan 5

你可以这样做:

view.snp.makeConstraints { (make) in
    make.width.equalTo(view.snp.height).multipliedBy(1.0 / 1.0)
}
Run Code Online (Sandbox Code Playgroud)

仅使用 iOS 即可运行以下扩展:

extension UIView {
    func aspectRatio(_ ratio: CGFloat) -> NSLayoutConstraint {
        return NSLayoutConstraint(item: self, attribute: .height, relatedBy: .equal, toItem: self, attribute: .width, multiplier: ratio, constant: 0)
    }
}
Run Code Online (Sandbox Code Playgroud)