一个基础问题,比如,UITextField和label横向并排放置,label可能会被拉伸或者压缩
//错误示例
let rightLabel = UILabel()
self.view.addSubview(rightLabel)
rightLabel.snp.makeConstraints { make in
make.top.right.bottom.equalToSuperview()
}
let leftTextField = UITextField()
self.view.addSubview(leftTextField)
leftTextField.snp.makeConstraints { make in
make.top.left.bottom.equalToSuperview()
make.right.equalTo(rightLabel.snp.left)
}
这样的代码。会让rightLabel被leftTextField拉长
可以设置优先级
//不希望被拉伸
rightLabel.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
//不希望被压缩
rightLabel.setContentHuggingPriority(.defaultHigh, for: .horizontal)
或者
//希望被拉伸
leftTextField.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
//希望被压缩
leftTextField.setContentHuggingPriority(.defaultLow, for: .horizontal)