虽然我似乎已经采取了在故事板的UIViews上设置视图约束的要点,但我似乎无法弄清楚为什么约束不能在动态单元原型ContentView的子视图中正常工作 .
单元格非常简单:UIImageView背景填充整个单元格,在它前面是另一个UIImage和一个标签,如下所示:
背景UIImageView具有以下4个约束:0固定为:trail,bottom,top和superview的前导空间
轮廓图像具有固定的宽度和高度,并且与领先的超视图具有恒定的13pts空间,并且在容器中具有垂直中心
标签有一个8pt的前导空间到配置文件pic和尾随空间到superview,并在容器中有一个垂直中心 .
这就是我得到的:
我错过了什么?我研究了这个问题,但没有答案解决了这个问题 . 但是,我尝试在加载单元格后在 cellForRowAtIndexPath 中添加以下行:
cell.setNeedsUpdateConstraints()
cell.updateConstraintsIfNeeded()
在运行时出现以下错误:
无法同时满足约束 . 可能至少下列列表中的一个约束是您不想要的约束 . 试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它 . (注意:如果你看到你不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性translatesAutoresizingMaskIntoConstraints的文档)(“NSLayoutConstraint:0x7fe5434852c0 H:[UIImageView:0x7fe543484450(75)]”,“NSLayoutConstraint:0x7fe5436c5cd0 H:| - (12) - [UIImageView:0x7fe543484450](名称:'|':UITableViewCellContentView:0x7fe5434820f0)“,”NSLayoutConstraint:0x7fe5436c34e0 H:[UILabel:0x7fe543487430'Joseph'] - (8) - |(名称:'|': UITableViewCellContentView:0x7fe5434820f0)“,”NSLayoutConstraint:0x7fe5436bcca0 H:[UIImageView:0x7fe543484450] - (8) - [UILabel:0x7fe543487430'Joseph']“,”NSLayoutConstraint:0x7fe5436cb110'UIView-Encapsulated-Layout-Width'H:[UITableViewCellContentView: 0x7fe5434820f0(0)]“)将尝试通过破坏约束来恢复NSLayoutConstraint:0x7fe5434852c0 H:[UIImageView:0x7fe543484450(75)]在UIViewAlertForUnsatisfiableConstraints处创建一个符号断点,以便在调试器中捕获它 . 在UIKit / UIView.h中列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有所帮助 .
有什么线索吗?
1 回答
好吧,问题是优先事项 .
你有背景图像,根据你放入的图像有一些尺寸,而且有一个固定高度和恒定空间13pts顶部和底部的轮廓图 .
表可能有分隔符,而且正在添加额外的空间 .
所以建议:较低的例如底部13pts约束从1000到750.这应该删除警告 .