NSLayoutConstrain - 将尝试通过打破约束来恢复 - 以编程方式创建约束 [重复]
Posted
技术标签:
【中文标题】NSLayoutConstrain - 将尝试通过打破约束来恢复 - 以编程方式创建约束 [重复]【英文标题】:NSLayoutConstrain - Will attempt to recover by breaking constraint - Programmatically Creating Constraints [duplicate] 【发布时间】:2016-06-02 19:10:55 【问题描述】:它运行良好,除了我收到此错误外没有任何问题。
下面是我的代码。
NSDictionary *views = @@"container":self.containerView,
@"head":self.headImageView,
@"userName":self.userNameLabel,
@"userTitle":self.userTitleLabel,
@"line":self.infoSeparatorLine,
@"articleTitle":self.articleTitleLabel
;
float headWidthAndHeight = 50;
NSDictionary *metrics = @@"headWH":@(headWidthAndHeight),
@"userLabelWH":@(headWidthAndHeight/2),
;
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[container]|" options:0 metrics:nil views:views]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[container]|" options:0 metrics:nil views:views]];
[self.containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[head(headWH)]-5-[userName]-15-|" options:0 metrics:metrics views:views]];
[self.containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[head(headWH)]-5-[userTitle]-15-|" options:0 metrics:metrics views:views]];
[self.containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[line]|" options:0 metrics:metrics views:views]];
[self.containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[articleTitle]-15-|" options:0 metrics:metrics views:views]];
[self.containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[head(headWH)]-0-[line(1)]-8-[articleTitle]|" options:0 metrics:metrics views:views]];
[self.containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[userName(userLabelWH)]-0-[userTitle(userLabelWH)]" options:0 metrics:metrics views:views]];
以下是我在调试区收到的错误信息。
我该如何解决?
【问题讨论】:
考虑到已经回答了几个类似的问题(如this),这个问题不太可能得到回答,而且这个问题仅适用于您的具体问题。我建议你尝试我提到的答案,一旦你得到它的工作,随时回答你自己的问题。 @fpg1503 谢谢!!你救了我的命,改变优先级并解除警告 【参考方案1】:[self.containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[head(headWH)]-0-[line(1)]-8@999-[articleTitle]|" options:0 metrics:metrics views:views]];
将优先级更改为低于 1000 以破坏约束。
【讨论】:
以上是关于NSLayoutConstrain - 将尝试通过打破约束来恢复 - 以编程方式创建约束 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
NSLayoutConstraint 的 Unsatisfiable Constraint 以编程方式更改 - swift