【问题标题】:UITableViewAutomaticDimension chopping contents of cell with auto layout constraints to bottomUITableViewAutomaticDimension 将具有自动布局约束的单元格内容切割到底部
【发布时间】:2017-10-07 19:33:27
【问题描述】:

图像显示在其中一个单元格中。

图像的约束如下:

heightForRow 中此单元格的高度设置为 UITableViewAutomaticDimension。但是图像从底部被切掉了。如何解决此问题以使图像完全显示?谢谢。

输出如下:

【问题讨论】:

  • 您没有收到“Y 位置需要约束”警告吗?我不确定单元格中是否还有其他确定单元格高度的 UI 元素,但我认为 >= 25 应该等于 25,优先级低于最高约束。
  • @AuRis 还有另一个元素UILabel,在此图标右侧的所有 4 个边上都是 15。那么哪一个应该得到更高的优先级?图标或标签?感谢您的回复。
  • @asdiu 您的源图像的纵横比是多少? (是正方形还是长方形?)
  • @Kymer 它是 32x32 的方形图像
  • 如果你想让你的图像视图确定高度,然后使用equals 而不是>= 使图像超级视图顶部和底部约束,并使底部约束的优先级低于顶部。对于 UILabel,要么不使用两者之一(顶部或底部),要么使它们的优先级低于图像视图的优先级。

标签: ios swift uitableview autolayout


【解决方案1】:

正如我在评论中提到的,如果您想要一个自定大小的单元格,请确定哪个元素(或组合)将确定高度。在您的情况下,图像视图具有高度约束,这意味着创建优先级低于顶部约束的前导、顶部和底部约束,否则 IB 会抱怨 Y 位置。然后用>= 8 或类似的东西拖到你的标签,然后 UILabel 拖到超级视图,最后是标签的 Y 位置,要么在 Y 中居中,要么给它一个顶部或底部约束,或两者兼而有之,但优先级较低而不是图像视图或较低的拥抱优先级。

这里是图像视图的约束:

底部约束的优先级低于顶部约束。 UILabel 垂直居中,因此对单元格大小没有影响。如果你有 UIlabel 的 top 和 bottom 约束,请确保它们的优先级低于 image view 的,或者它的拥抱优先级低于 image view。

这是它在模拟器中的样子:

【讨论】:

    猜你喜欢
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多