我使用的是Injection Live Rendering和Snapkit。每次我保存项目,并更改约束,以便项目可以实时渲染时,Xcode控制台就会告诉我应该设置一个符号制动点(UIViewAlertForUnsatisfiableConstraints)。但是,当我不使用实时渲染(只需按下构建按钮)构建项目时,它可以正常显示。
class ViewController: UIViewController {
let leftView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(leftView)
makeLeftView()
}
func makeLeftView() {
leftView.snp.makeConstraints { (make) in
make.left.equalTo(view.snp.left).offset(10)
make.top.equalTo(view.snp.top).offset(10)
}
leftView.frame.size = CGSize(width: 50, height: 50)
leftView.backgroundColor = UIColor.green
}
@objc func injected() {
makeLeftView()
}
}导致此问题的原因是什么?约束正在以某种奇怪的方式重新加载吗?
发布于 2017-10-25 19:26:35
您可以尝试在makeConstraints闭包中设置宽度和高度,而不是设置leftView的框架大小吗
leftView.snp.makeConstraints { (make) in
make.left.equalTo(view.snp.left).offset(10)
make.top.equalTo(view.snp.top).offset(10)
make.width.equalTo(50)
make.height.equalTo(50)
}将设置w,h定向到frameSize将使您布局出现不明确的布局。
https://stackoverflow.com/questions/46927918
复制相似问题