从上到下从左到右,我看上去看觉没问题,但是约束还是冲突了
我的代码:
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_offset(CGSizeMake(36, 36));
make.left.equalTo(self.contentView).offset(15);
make.top.equalTo(self.contentView).offset(14);
}];
[self.userNameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.avatarImageView.mas_right).offset(12);
make.right.equalTo(self.contentView).offset(-16);
make.top.equalTo(self.avatarImageView.mas_top);
}];
[self.commentContentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.userNameLabel.mas_bottom).offset(10);
make.left.equalTo(self.userNameLabel.mas_left);
make.right.equalTo(self.contentView).offset(-16);
}];
[self.newsTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.commentContentLabel.mas_bottom).offset(15);
make.left.equalTo(self.commentContentLabel.mas_left);
make.right.equalTo(self.contentView).offset(-16);
}];
[self.commentTimeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.newsTitleLabel.mas_left);
make.top.equalTo(self.newsTitleLabel.mas_bottom).offset(10);
}];
[self.goodView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_offset(CGSizeMake(50, 50));
make.centerY.equalTo(self.commentTimeLabel);
make.right.equalTo(self.newsTitleLabel.mas_right);
}];
[self.lineLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.commentTimeLabel.mas_bottom).offset(8);
make.left.equalTo(self.commentTimeLabel.mas_left);
make.right.equalTo(self.contentView);
make.height.offset(0.5);
make.bottom.equalTo(self.contentView);
}];
Log:
2018-06-11 23:08:46.334734+0800 [55085:3302437] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<MASLayoutConstraint:0x6040002b7760 UIImageView:self.avatarImageView.top == UITableViewCellContentView:0x7fe2ff295f10.top + 14>",
"<MASLayoutConstraint:0x6040002b8720 UILabel:self.userNameLabel.top == UIImageView:self.avatarImageView.top>",
"<MASLayoutConstraint:0x6040002b6980 UILabel:self.commentContentLabel.top == UILabel:self.userNameLabel.bottom + 10>",
"<MASLayoutConstraint:0x6040002bb1e0 WXMyCommentCustomLabel:self.newsTitleLabel.top == UILabel:self.commentContentLabel.bottom + 15>",
"<MASLayoutConstraint:0x6040002ba340 UILabel:self.commentTimeLabel.top == WXMyCommentCustomLabel:self.newsTitleLabel.bottom + 10>",
"<MASLayoutConstraint:0x6040002b6380 UILabel:self.lineLabel.top == UILabel:self.commentTimeLabel.bottom + 8>",
"<MASLayoutConstraint:0x6040002b71c0 UILabel:self.lineLabel.height == 0.5>",
"<MASLayoutConstraint:0x6040002b6b60 UILabel:self.lineLabel.bottom == UITableViewCellContentView:0x7fe2ff295f10.bottom>",
"<NSLayoutConstraint:0x604000686130 UITableViewCellContentView:0x7fe2ff295f10.height == 43.5>"
)
Will attempt to recover by breaking constraint
<MASLayoutConstraint:0x6040002b71c0 UILabel:self.lineLabel.height == 0.5>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2018-06-11 23:08:46.335202+0800 [55085:3302437] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<MASLayoutConstraint:0x6040002b7760 UIImageView:self.avatarImageView.top == UITableViewCellContentView:0x7fe2ff295f10.top + 14>",
"<MASLayoutConstraint:0x6040002b8720 UILabel:self.userNameLabel.top == UIImageView:self.avatarImageView.top>",
"<MASLayoutConstraint:0x6040002b6980 UILabel:self.commentContentLabel.top == UILabel:self.userNameLabel.bottom + 10>",
"<MASLayoutConstraint:0x6040002bb1e0 WXMyCommentCustomLabel:self.newsTitleLabel.top == UILabel:self.commentContentLabel.bottom + 15>",
"<MASLayoutConstraint:0x6040002ba340 UILabel:self.commentTimeLabel.top == WXMyCommentCustomLabel:self.newsTitleLabel.bottom + 10>",
"<MASLayoutConstraint:0x6040002b6380 UILabel:self.lineLabel.top == UILabel:self.commentTimeLabel.bottom + 8>",
"<MASLayoutConstraint:0x6040002b6b60 UILabel:self.lineLabel.bottom == UITableViewCellContentView:0x7fe2ff295f10.bottom>",
"<NSLayoutConstraint:0x604000686130 UITableViewCellContentView:0x7fe2ff295f10.height == 43.5>"
)
Will attempt to recover by breaking constraint
<MASLayoutConstraint:0x6040002bb1e0 WXMyCommentCustomLabel:self.newsTitleLabel.top == UILabel:self.commentContentLabel.bottom + 15>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2018-06-11 23:08:46.365781+0800 [55085:3302437] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<MASLayoutConstraint:0x6040002b8d20 UIImageView:self.avatarImageView.width == 36>",
"<MASLayoutConstraint:0x6040002b8a80 UIImageView:self.avatarImageView.left == UITableViewCellContentView:0x7fe2ff295f10.left + 15>",
"<MASLayoutConstraint:0x6040002b7ac0 UILabel:self.userNameLabel.left == UIImageView:self.avatarImageView.right + 12>",
"<MASLayoutConstraint:0x6040002bb180 UILabel:self.commentContentLabel.left == UILabel:self.userNameLabel.left>",
"<MASLayoutConstraint:0x6040002b7a60 WXMyCommentCustomLabel:self.newsTitleLabel.left == UILabel:self.commentContentLabel.left>",
"<MASLayoutConstraint:0x6040002b9f80 WXMyCommentCustomLabel:self.newsTitleLabel.right == UITableViewCellContentView:0x7fe2ff295f10.right - 16>",
"<NSLayoutConstraint:0x60400049af90 UITableViewCellContentView:0x7fe2ff295f10.width == 0>"
)
Will attempt to recover by breaking constraint
<MASLayoutConstraint:0x6040002b8d20 UIImageView:self.avatarImageView.width == 36>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2018-06-11 23:08:46.366501+0800 [55085:3302437] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<MASLayoutConstraint:0x6040002b8a80 UIImageView:self.avatarImageView.left == UITableViewCellContentView:0x7fe2ff295f10.left + 15>",
"<MASLayoutConstraint:0x6040002b7ac0 UILabel:self.userNameLabel.left == UIImageView:self.avatarImageView.right + 12>",
"<MASLayoutConstraint:0x6040002bb180 UILabel:self.commentContentLabel.left == UILabel:self.userNameLabel.left>",
"<MASLayoutConstraint:0x6040002b7a60 WXMyCommentCustomLabel:self.newsTitleLabel.left == UILabel:self.commentContentLabel.left>",
"<MASLayoutConstraint:0x6040002b9f80 WXMyCommentCustomLabel:self.newsTitleLabel.right == UITableViewCellContentView:0x7fe2ff295f10.right - 16>",
"<NSLayoutConstraint:0x60400049af90 UITableViewCellContentView:0x7fe2ff295f10.width == 0>"
)
Will attempt to recover by breaking constraint
<MASLayoutConstraint:0x6040002b7ac0 UILabel:self.userNameLabel.left == UIImageView:self.avatarImageView.right + 12>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.