虽然我似乎已经采取了在故事板的UIViews上设置视图约束的要点,但我似乎无法弄清楚为什么约束在动态单元原型ContentView的子视图中没有正常工作。
单元格非常简单:一个UIImageView背景填充整个单元格,在它前面是另一个UIImage和一个标签如下:
后台UIImageView有以下4个约束: 0固定为:追踪,底部,顶部和超前视图的前导空间
轮廓图像具有固定的宽度和高度,与领先的超视图具有恒定的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) - |(Names:'|':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类别中的方法也可能有所帮助。
任何线索?
答案 0 :(得分:1)
嗯,问题是优先事项。
你有背景图片,根据你放入的图像有一些尺寸,而且有一个固定高度和13ts顶部和底部恒定空间的轮廓图片。
表可能有分隔符,而且正在添加额外的空间。
所以建议:较低的例如底部13pts约束从1000到750.这应该删除警告。