【问题标题】:UITableViewCell Autolayout issues (iOS 11, Xcode 9.2)UITableViewCell 自动布局问题(iOS 11、Xcode 9.2)
【发布时间】:2018-05-30 19:18:35
【问题描述】:

我正在尝试配置从 nib 文件加载的 UITableViewCell。该单元格有两个元素 - 左侧的 UIImageView 和右侧的 UILabel。

UIImageView 有以下约束:

高度:100 pt,宽度:100 pt,superview 的前导空间 = 10pt,superview 的顶部空间 = 10 pt,superview 的底部空间 = 10 pt(如果我没有设置此底部空间约束,那么单元格不会' 不能正确显示图像并且它们都被损坏了)

UILabel 具有以下约束:

UIImageView 的前导空间 = 10pt,超级视图的顶部空间 = 10pt,超级视图的尾随空间 = 10pt,超级视图的底部空间 = 10pt

UILabel 的行数设置为 0,表格的估计行高设置为 200 pt,行高设置为 UITableViewAutomaticDimension。

我希望 UILabel 适合所有行(因此它的行数设置为 0)并且单元格随着标签高度动态扩展

但是,单元格仅扩展到 100 像素的最大高度(UIImageView 的高度)并且标签内容被截断。

我在这里做错了什么?

【问题讨论】:

  • 您是否尝试过将图像视图的底部约束设置为等于或大于 10?
  • 谢谢@Douglas!我将底部空间约束设置为 >=10,这让单元格高度随着标签内容的增长而增长。为了美化单元格,我还删除了 UIImageView 的顶部空间约束并添加了垂直居中约束。
  • 很高兴工作。我从 Ray Wenderlich 网站上的教程中学到了这个技巧。学习的好地方。

标签: ios xcode uitableview uiimageview ios-autolayout


【解决方案1】:

这个高度是有道理的,因为您已将 ImageView 设置为静态高度,然后将其顶部和底部绑定到内容视图。这会阻止细胞长得更高。

您需要允许图像高度增加或移除顶部或底部约束,以便单元格的高度不受图像视图的限制。

试试这些限制:

  • 图像视图高度/宽度
  • 图像视图前导 = 单元格前导
  • 图像视图顶部 = 单元顶部
    • 或垂直居中或任何您想要的。
    • 基本上,只需以某种方式设置图像视图的 Y 位置
  • 标签前导 = 图像视图尾随
  • 标签顶部 = 单元顶部
  • 标签底部 = 单元底部
  • 标签尾随 = 单元格尾随
  • 标签高度 >= 图像视图高度
    • 阻止标签(以及单元格)折叠小于图像视图

【讨论】:

  • 谢谢@ABeard89。请参考我上面的评论。 UIImageView 上 >=10 的底部空间约束起到了作用。
  • @cubsnlinux >= 约束也解决了静态高度问题。没有错。很高兴你解决了!
  • 这个解决方案也解决了这个问题。然而,我没有设置标签高度 >= 图像视图高度,而是将 UIImageView 的底部空间约束设置为 >= 10,因为我个人觉得它更直观。两种解决方案都有效。
  • @cubsnlinux 没有难过的感觉。如果它对您有意义并且有效,那么这才是最重要的!
猜你喜欢
  • 2020-04-30
  • 1970-01-01
  • 2017-02-13
  • 2020-09-21
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多