以下是我在调试区域收到的错误消息。它运行正常,没有任何错误,除了我收到此错误。这会阻止苹果接受应用吗?我该如何解决?
(
"<NSLayoutConstraint:0x7f9bdaf58890 UIView:0x7f9bdaf484e0.leading == UIView:0x7f9bdaf56e30.leadingMargin + 34>",
"<NSLayoutConstraint:0x7f9bdaf58930 UIView:0x7f9bdaf56e30.trailingMargin == UIView:0x7f9bdaf484e0.trailing + 34>",
"<NSLayoutConstraint:0x7f9bdaf58980 H:[UIView:0x7f9bdaf484e0(300)]>",
"<NSLayoutConstraint:0x7f9bdaf5bfc0 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7f9bdaf56e30(375)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f9bdaf58980 H:[UIView:0x7f9bdaf484e0(300)]>
答案 0 :(得分:2)
我猜这种情况发生在iPhone 6的UITableView
上。
由于单元格从tableView的左边缘到达右边缘,因此单元格需要375点宽。 UITableView添加UIView-Encapsulated-Layout-Width
约束来实现此目的。
您自己添加的约束|-34-[centerView(=300)]-34-|
将创建一个368点的单元格宽度。
自368!= 375以来,这不会奏效。
你有几个选择。
|-34-[centerView(>=300)]-34-|
|-34-[centerView]-34-|
,这将导致iPhone 6的宽视角为307,在iPhone 6s上将为346点宽,在iPhone 5上将为252点宽。 正如你所说,如果系统违反了width = 300约束,应用程序就可以运行,所以你可以自己删除那个约束。如果它在没有这种约束的情况下工作,那就没有意义了。
同时具有两个边距约束和宽度约束并没有意义并且无法实现自动布局的目的。