如何在 Swift 中使用 SnapKit 使 UIView 具有相等的宽度和高度?
Posted
技术标签:
【中文标题】如何在 Swift 中使用 SnapKit 使 UIView 具有相等的宽度和高度?【英文标题】:how to make UIView with equal width and height with SnapKit in Swift? 【发布时间】:2016-10-26 08:50:00 【问题描述】:我想在 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
()
【问题讨论】:
【参考方案1】:你必须使用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】:如果您在同一个 superview 上有 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.width
或view.snp.height
,您可以使用SnapKit
【讨论】:
【参考方案3】: view.snp.makeConstraints( (make) in
make.left.top.bottom.equalToSuperview().inset(self.inset)
make.width.equalTo(view.snp.height)
)
【讨论】:
请补充说明以上是关于如何在 Swift 中使用 SnapKit 使 UIView 具有相等的宽度和高度?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SnapKit 中设置 heightAnchor 的乘数 - swift
如何在 Swift 中将 SnapKit ConstraintItem 转换为整数?