UITableViewCell Autolayout问题(iOS 11,Xcode 9.2)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITableViewCell Autolayout问题(iOS 11,Xcode 9.2)相关的知识,希望对你有一定的参考价值。

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

Custom UITableViewCell

UIImageView具有以下约束:

高度:100 pt,宽度:100 pt,前视空间到superview = 10pt,顶部空间到superview = 10 pt,底部空间到superview = 10 pt(如果我没有设置这个Bottom空间约束,那么单元格不会显示图像正确,它们都被破坏了)

UILabel具有以下约束:

从UIImageView = 10pt的顶部空间,顶部空间到superview = 10pt,尾部空间到superview = 10pt,底部空间到superview = 10pt

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

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

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

我在这做错了什么?

答案

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

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

尝试这些约束:

  • 图像视图高度/宽度
  • 图像视图领先=细胞领先
  • 图像视图顶部=单元格顶部 或垂直居中或任何你想要的。 基本上,只需设置图像视图的Y位置
  • 标签前导=图像视图尾随
  • 标签顶部=单元格顶部
  • 标签底部=单元格底部
  • 标签尾随=单元格尾随
  • 标签高度> =图像视图高度 停止标签(因此,单元格)折叠小于图像视图

以上是关于UITableViewCell Autolayout问题(iOS 11,Xcode 9.2)的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 高度不是自动布局约束后子图像高度的高度。

UITableViewCell 中的 UIDatePicker 更新 UITableViewCell 文本标签

突出显示的 UITableViewCell 和选定的 UITableViewCell 有啥区别?

斯威夫特 - UITableViewCell?不能转换为 UITableViewCell

UITableviewcell的性能问题

UITableViewCell 上的动画按钮而不影响其他 UITableViewCell