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 - 将尝试通过打破约束来恢复 - 以编程方式创建约束 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

页面布局的四种方式

以编程方式向UITextField添加约束

NSLayoutConstraint 的 Unsatisfiable Constraint 以编程方式更改 - swift

UIView animateWithDuration 动画块之外的动画自动布局视图

使用故事板中的自动布局使 UIButtons 居中

iOS开发之Masonry框架源码解析