Ios 我在理解如何使用autolayout的逻辑时遇到问题

Ios 我在理解如何使用autolayout的逻辑时遇到问题,ios,swift,tableview,height,nslayoutconstraint,Ios,Swift,Tableview,Height,Nslayoutconstraint,以下是我的项目存储库: 我之所以在这里给出整个项目,是因为问题存在于.xib文件中,而不是代码问题,因此我认为这将是我获得此问题帮助的更好方式 当试图从我拥有的一些数据填充表视图中的自定义单元格时,我面临以下问题 无法同时满足约束。 可能下面列表中至少有一个约束是您不想要的 因此,我在这个网站上寻找解决方案,找到了一种很好的调试方法来找出问题所在。我做了一个扩展,覆盖了NSLayoutDescription的description变量,并打印出id和常量,以便更快更好地理解问题所在。显然,一旦

以下是我的项目存储库:

我之所以在这里给出整个项目,是因为问题存在于.xib文件中,而不是代码问题,因此我认为这将是我获得此问题帮助的更好方式

当试图从我拥有的一些数据填充表视图中的自定义单元格时,我面临以下问题

无法同时满足约束。 可能下面列表中至少有一个约束是您不想要的

因此,我在这个网站上寻找解决方案,找到了一种很好的调试方法来找出问题所在。我做了一个扩展,覆盖了NSLayoutDescription的description变量,并打印出id和常量,以便更快更好地理解问题所在。显然,一旦我从.xib文件中的img中删除高度和重量,错误就会消失,但这会使图像从.xib文件中完全消失。我的布局方式有什么问题?我还尝试在我的.xib文件上使用“重置为建议的约束条件”,这样可以消除错误,但一旦我上下滚动,每个单元格的高度都会变得很大

我面临的另一个问题是——我想我不确定约束是如何起作用的。这是因为当您查看我的xib文件时,您可以看到图像和单元格右端之间有一个较大的空格,但是列表本身没有任何内容,因此我对此感到非常困惑

这是带有tableview的模拟器的图像-

这是我的.xib文件的图像,其中的空格实际上没有出现在模拟器中-


(我不知道如何将它们直接放到帖子中)

一般来说,你应该有4个限制条件。我和你有过同样的问题,对我来说,最好的解决方案是使用高度或宽度的百分比,然后是纵横比。例如,元素的高度将是视图的20%,然后我使用纵横比作为宽度等。
另外,不要对所有5个元素都使用stackView。将电影图像保留在stackView之外

1-删除此处的宽度和高度限制

2-删除此处的containerView前导约束

3-将尾部约束添加到stackview

4-向stackview前导常量添加一个值

5-选择所有标签并将垂直内容拥抱调整为1000


6-选择textContainer堆栈并将间距设置为20

问题在于您使用了StackView,但StackVews也需要一些约束

下面是我用来获得结果的约束条件

我在stack view中放置了4个元素,并将图像显示在前导顶部的宽度和高度

您设置的约束错误,stack view还需要一些约束哪个约束错误?哪个stackview是缺少约束的?您在详细视图中也设置了错误的约束。您可以更具体地说明什么是错误的吗?试试@Sh_Khan answer它会解决您的问题它不起作用,因为它会在滚动时增加单元格的高度。mondi是正确的,这个解决方案产生了两个问题-1-滚动时单元格的高度增加了2-我在单元格的图像端和右端之间得到了一些小的余量我一直遵循你的解决方案直到第6位,这就是我到目前为止得到的结果:滚动时单元格的高度不会突然增加,并且没有错误控制台,但它似乎真的“挤”在一起,所以我宁愿它会有点高。此外,还需要注意图片右侧的边距。如果你能解释一下我的错误以及你到目前为止所做的事情,我将不胜感激。谢谢如果你能帮我解决这个问题,那将是令人惊叹的是,先生,它会,但是OP说它会增加单元格高度,但是这个解决方案不会增加高度。如果需要,它应该增加单元格高度。编辑不会增加单元格高度。我想,因为我已经定义了标签和图像的高度。这个解决方案对我来说似乎有点过分了需求我将为您更新到目前为止我所做的事情-我已经清除了所有约束,只在主容器中添加了4个约束,我仍然无法理解是什么导致单元格高度变得更大-唯一的解决方案是给它一个固定高度,但我得到了无法满足的错误控制台中的约束。我已经想出了如何解决这个问题,但非常感谢您当您说4个约束时,您的意思是每个视图必须有4个关于它们在哪个堆栈中的约束?或者每个故事板/xib文件的约束总数应为4个约束?对我来说,这两个元素似乎都不符合逻辑,但我希望你能澄清。你应该对每个元素的高度、宽度、x位置和y位置进行约束。