【问题标题】:Width of UITableView Cell not changed when constraints are applied xcode storyboard应用约束时,UITableView Cell 的宽度不会改变 xcode 故事板
【发布时间】:2020-10-06 01:24:22
【问题描述】:

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

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


编辑 1:

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

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


编辑 2:

同样的错误也出现在另一个布局中

在这里

添加的约束是

以及更小屏幕尺寸的预览

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

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


编辑 3:

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

约束:

预览窗口中的输出:


编辑 4:

我创建了一个简单的布局,以便更容易解决问题

还有输出

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


编辑 5:

当我在 iPhone SE 上进行相同的布局时,结果如下,我在编辑 4 中使用了与上述相同的约束

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

【问题讨论】:

  • 你能添加代码/故事板截图吗?似乎红框缺少约束
  • 您能分享一下添加到视图中的约束吗?
  • 我认为“标题”和“时间”的抗内容压缩优先级是造成问题的原因。您可以尝试给“标题”一个固定宽度并在两者之间设置一个前导约束吗?
  • 我用 UIView 制作了一个更简单的 tableview 单元格,宽度似乎没有根据约束进行调整,我在 Edit 4 中添加了它
  • @aj_ios 你能帮我理解如何解决这个问题吗?我被这个错误困扰了两天......

标签: ios swift xcode uistoryboard ios-autolayout


【解决方案1】:

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

Edit5 SE Edit5 XR

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

Edit5 上的约束: Edit5 Constraints

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

我已附上屏幕 XR 和 SE 的屏幕截图。
Edit1 SE Edit1 XR

Edit1 上的约束: Edit1 Constr

【讨论】:

  • Edit5中,如果不想多带黄色的UIView,可以使用TableViewCell的Content View。这次将所有与上面相同的绿色 UIView 约束赋予 ContentView。将 Content View 的背景颜色设置为黄色。这将在您的单元格中节省 1 个额外的视图。此外,您可以通过将绿色 uiview 的 height 属性中的乘数赋予内容视图来更改绿色 UIview 相对于内容视图的高度。
【解决方案2】:

首先在 tableviewCell 上取一个 UIView 并将leading,trailing,Top,Bottom 设置为 0。然后设计你的上视图。并且不要给任何导致时间的标签。

【讨论】:

    【解决方案3】:

    如果在此层次结构中为单元格添加视图,则它适用于所有设备。

    请检查添加的约束。

    【讨论】:

    • 当然!会试试这个。非常感谢!
    • 我尝试了您提供的上述解决方案,但仍然无法正常工作。我已经编辑了上面的问题并添加了上面的约束和输出。你能看一下并帮助我理解可能出了什么问题吗?谢谢
    • 我的另一个布局也发生了这种情况
    • 您能否尝试为单元格设置背景颜色,以确保该单元格的宽度没有增加或实际上存在约束问题?
    • 是的,我已经编辑了我的问题“编辑 3”,其中包括视图的背景颜色和应用的约束
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2018-04-15
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多