我创建了一些原型单元格来在UITableView
中显示我的数据。我目前使用的原型单元有
具有灰色背景的UIView
,其中包含:
在接口生成器中放置约束的一些初始问题之后,我设法创建(可能是)无冲突的布局约束来保持一切就绪。在模拟器(iPhone 5)中,一切都像预期的那样工作,但是只要我将它加载到我的物理iPhone 5中就会出现问题。
起初一切看起来都不错(左图)。一旦我在视图外(第二张图像)滑动其中一个TableViewCell
,一些约束就会中断,隐藏外部两个标签并更改单元格高度(第三张图像)。 - 当我在模拟器中运行应用程序时,这不会发生。
一旦将细胞推到可见视野之外,就会发生这种情况。
这些是我在控制台中收到的警告:
2015-03-11 14:44:44.282 MSUapp[1280:942149] 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. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x155f5170 H:[UIView:0x155f3fe0(50)]>",
"<NSLayoutConstraint:0x155f5580 UIImageView:0x155f54d0.width == UIImageView:0x155f54d0.height>",
"<NSLayoutConstraint:0x155f5bf0 UILabel:0x155f5820'1. FC K\U00f6ln'.leading == UITableViewCellContentView:0x156ed850.leadingMargin - 7>",
"<NSLayoutConstraint:0x155f5c50 H:[UILabel:0x155f5820'1. FC K\U00f6ln']-(15)-[UIImageView:0x155f54d0]>",
"<NSLayoutConstraint:0x155f5cb0 UIView:0x155f3fe0.top == 0.4*UITableViewCellContentView:0x156ed850.centerYWithinMargins>",
"<NSLayoutConstraint:0x155f5ce0 UIView:0x155f3fe0.bottom == 1.6*UITableViewCellContentView:0x156ed850.centerYWithinMargins>",
"<NSLayoutConstraint:0x155f5d10 H:[UIImageView:0x155f54d0]-(5)-[UIView:0x155f3fe0]>",
"<NSLayoutConstraint:0x155f5d40 UITableViewCellContentView:0x156ed850.centerX == UIView:0x155f3fe0.centerX>",
"<NSLayoutConstraint:0x155f5d70 UIView:0x155f3fe0.height == UIImageView:0x155f54d0.height>",
"<NSLayoutConstraint:0x1552a0c0 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x156ed850(320)]>",
"<NSLayoutConstraint:0x1552a090 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x156ed850(178.5)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x155f5580 UIImageView:0x155f54d0.width == UIImageView:0x155f54d0.height>
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.
这是我的约束列表(我无法扩展它,因此文本的末尾被裁剪):
预览模板表示约束,例如没有任何警告说任何事情都是错位的。
我该怎么做才能防止这种情况发生?如果您需要任何其他信息,请与我们联系。任何帮助表示赞赏!
更新 我刚刚更改了一些约束,并将之前测试的iPhone 5更新为iOS 8.3 beta。现在它正在努力。但是,当我在iPhone 6(运行iOS 8.1.3)上试用它时,问题仍然存在。因此它似乎是iOS版本特定的。它有什么修复方法吗?