首页 > 解决方案 > 应用约束时,UITableView Cell 的宽度不会改变 xcode 故事板

问题描述

我正在使用自定义表格视图单元格和自动布局,但遇到以下错误,我尝试应用不同的约束以拉伸宽度但没有成功。有人可以帮助我如何调整约束以使单元格填满屏幕的整个宽度吗?

我尝试添加尾随约束和等宽约束,但没有成功

在此处输入图像描述


编辑1:

我根据建议尝试了这个并得到了这个

在此处输入图像描述

在预览中它向我展示了这个

在此处输入图像描述


编辑2:

同样的错误也发生在另一个布局中

这里是

在此处输入图像描述

添加的约束是

在此处输入图像描述

以及更小屏幕尺寸的预览

在此处输入图像描述

tableview 之外的所有元素都正确缩放,tableview 内的元素发生错误,错误是单元格的宽度没有根据屏幕大小进行调整

你能帮我解决这个问题吗?


编辑3:

这是带有彩色背景的约束和输出,以便更好地理解,我仍然没有找到解决方案,也无法理解为什么它不起作用,请有人帮忙

约束:

在此处输入图像描述

预览窗口中的输出:

在此处输入图像描述


编辑4:

我创建了一个简单的布局,以便更轻松地解决问题

在此处输入图像描述

和输出

在此处输入图像描述

主要问题是宽度没有缩放,似乎无法理解为什么......


编辑5:

当我在 iPhone SE 上进行相同的布局时,结果就是这些,我在编辑 4 中使用了与上面相同的约束

在此处输入图像描述

约束似乎在表格视图单元格内不起作用。有人能告诉我如何解决这个问题吗?谢谢

标签: iosswiftxcodeuistoryboardios-autolayout

解决方案


从您的Edit5中,我相信您想要这样的东西。

Edit5 SE Edit5 XR

这些是 XR 和 SE 的屏幕截图。
1.让您的单元格自动计算高度。您只需要对单元格内的项目应用约束。
2. 在 UITableViewCell 中,添加一个 UIView(background color: Yellow),其约束 top、bottom、leading、trailing 等于 0。如果您不希望它等于默认行高,请为此视图指定一个固定高度。
3. 在这个黄色的 UIView 中,添加另一个 UIView(background color: Green) 约束前导=10,尾随=10。将此绿色 UIView“在容器中垂直居中”标记为它的父级,即黄色 UIView。现在,给绿色 UIView 相等的高度约束到它的父级,即黄色 UIView。您可以根据需要更改它的乘数。

Edit5上的约束: Edit5 约束

此外,对于您的Edit1,根据我的理解,您没有将 Content Hugging 优先级应用于 Time 标签。当可用内容大于内容的总大小时,内容拥抱优先级就会发挥作用。这里,可用内容=屏幕宽度和内容总大小=标题+时间。因此,您需要将 Time 的 Content Hugging 优先级设置为高,Title 的 Content Hugging 优先级设置为低,以便 Title 标签在屏幕上展开。具有较高优先级的人被挤压,即紧紧地拥抱它的内容。

我附上了屏幕 XR 和 SE 的屏幕截图。
编辑1 SE 编辑1 XR

Edit1 上的约束: Edit1约束


推荐阅读