我在iOS 7中遇到了Autolayout自定义TableViewCell的问题。单元格似乎显示正确,但我得到了大量的调试控制台输出,如下所示:
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:0x7f9c1a4b8500 V:[UILabel:0x7f9c1a4b72d0]-(0)-[UILabel:0x7f9c1a4b7680]>",
"<NSLayoutConstraint:0x7f9c1a4b8550 V:[UILabel:0x7f9c1a4b7680]-(0)-[UILabel:0x7f9c1a488910]>",
"<NSLayoutConstraint:0x7f9c1a4b85c0 V:[UILabel:0x7f9c1a488910]-(NSSpace(20))-| (Names: '|':UITableViewCellContentView:0x7f9c1a4b66d0 )>",
"<NSLayoutConstraint:0x7f9c1a4b87f0 V:|-(NSSpace(20))-[UILabel:0x7f9c1a4b6f00] (Names: '|':UITableViewCellContentView:0x7f9c1a4b66d0 )>",
"<NSLayoutConstraint:0x7f9c1a4b8840 V:[UILabel:0x7f9c1a4b6f00]-(NSSpace(8))-[UILabel:0x7f9c1a4b72d0]>",
"<NSAutoresizingMaskLayoutConstraint:0x7f9c1a4a70e0 h=--& v=--& V:[UITableViewCellContentView:0x7f9c1a4b66d0(44)]>"
)
我只在iOS 7中获得此输出,并且我在所有自定义表格视图单元格中,在多个视图控制器上看到它。我已按照本文中的所有步骤操作:(Using Auto Layout in UITableView for dynamic cell layouts & variable row heights)。我已经尝试在这些单元格中调整内容视图的AutoresizingMask,但它不会阻止这些错误出现。我非常感谢有关修复这些错误的建议。谢谢!
答案 0 :(得分:1)
最后一个, “NSAutoresizingMaskLayoutConstraint:0x7f9c1a4a70e0 h = - &amp; v = - &amp; V:[UITableViewCellContentView:0x7f9c1a4b66d0(44)]”
可以表明在tableviewcell中translatesAutoresizingMaskIntoConstraints属性设置为YES。如果是这种情况,请尝试将其设置为NO,以避免约束与自动约束之间发生冲突。
答案 1 :(得分:0)
这意味着你有一些冲突的约束,它正在挑选满足一个,因为它们不能都满足。
通常这意味着您要么: 1)您知道的约束不会同时满足,例如最小尺寸或偏移量与百分比或比率相结合。在这种情况下,您需要做的就是降低您想要先破坏的优先级。
或者,2)重复约束的措辞不同(垂直居中,但也有尾随空间等)这个我很难远程诊断,所以发布约束很重要。
如果特定的约束对你来说并不那么重要(AKA你没有花那么长的时间来添加它们),那么将它们全部删除,添加建议,并从那里开始工作是一个非常有效的起点。