将图像添加到UITableViewCell中的UIImageView会不希望地修改图像视图高度

问题描述 投票:1回答:1

我在UIImageView中有一个UITableViewCell。单元格高度基于UILabel中使用估计的行高的文本行数而变化。我希望此图像在单元格中垂直居中,具有固定的宽度,且高度> = 40和<= 80。随着像元高度的增加,我希望图像增加到最大高度,然后停止,始终保持垂直居中。为此,我添加了这两个高度约束和宽度约束,再加上单元格顶部和底部的约束,其中一些填充的常数为5,优先级为250。向图像视图中添加背景色正在按预期方式进行布局。但是,当我在图像视图上设置图像时,高度发生了意外变化。

标签中有3行:

  • [无图像:图像视图高出预期的60pt
  • 带图片:图片视图高80pt-预期为〜60

enter image description here

标签中有6行:

  • 没有图像:图像视图高出预期的80pt
  • 带有图像:图像视图高出预期的80pt

enter image description here

为什么?我如何确保图像视图中的图像不影响图像视图大小,因为我希望由自动布局约束确定的像元高度来确定它?]

Here's a sample project.

ios uitableview uiimageview
1个回答
0
投票

虽然使用这些自动布局约束无法获得期望的图像视图高度,但我确实通过使用单个高度约束并在计算出的constantlayoutSubviews中手动设置了UITableViewCell来达到了目标。为min(contentView.bounds.height - 5 * 2, 80)。然后在Superview中添加CenterY约束以使其垂直居中。现在,将图像添加到图像视图不会意外更改图像视图的高度。

© www.soinside.com 2019 - 2024. All rights reserved.