自调整大小表格单元格中的 ImageView 在应用 Aspect Fit 之前使用图像的高度
Posted
技术标签:
【中文标题】自调整大小表格单元格中的 ImageView 在应用 Aspect Fit 之前使用图像的高度【英文标题】:ImageView in self-sizing table cell uses height of image before Aspect Fit is applied 【发布时间】:2017-10-13 00:06:57 【问题描述】:我在具有 Aspect Fit 内容模式的自定大小表格单元格内有一个 ImageView。 当表格完全加载图像本身看起来很棒时,它会调整大小以适应单元格的宽度,同时仍保持原始比例。 但是,表格单元格的高度与从未将 Aspect Fit 内容模式应用于图像视图一样大。
此图像中的红色是图像视图,实际图像上方和下方的空间是我要避免的。
当我将 Aspect Fit 替换为 Aspect Fill 时,相同的单元格如下所示:
这就是我说图像视图在应用 Aspect Fit 之前使用图像的高度时的意思。
我是否缺少 ImageView 中的约束或设置? 任何帮助表示赞赏!
【问题讨论】:
您是否为单元格内的图像视图的高度设置了约束? 这些图片来自哪里?它们是从远程服务器下载的还是在您的 assets.xcassets 文件中? 图片正在从 URL 下载。 我没有设置高度约束,因为我希望单元格根据图像的大小调整大小。我觉得添加约束会创建一个我试图避免的固定高度图像 如果您提供更多关于如何设置 tableview 和下载图像的代码,那么我可以提供更详细的帮助。 【参考方案1】:如果图像是从服务器下载的,则下载需要一秒或一毫秒。他们下载所花费的时间对用户来说是显而易见的。最好的用户体验是在下载图像之前明确设置高度和宽度。如果您使用第三方 API 来获取图像(即 facebook 或 youtube API),则返回将包括图像 URL 以及图像的高度和宽度。这样,您可以设置单元格的高度和宽度,然后等待图像下载,而不会中断或更改单元格的大小。这将是最好的方法。通过明确设置高度和宽度,您无需担心用于图像视图的内容模式。如果您明确设置该单元格内图像视图的高度和宽度,我只建议使用自调整大小的 UITableViewCell。我希望这会有所帮助!
我刚刚看到您最近的评论。您可以根据返回的图像调整每个单元格中每个图像视图的大小。您不需要为图像视图设置固定高度。您可以根据该单元格中的图像更改每个单元格的高度。我只建议在下载图像之前执行此操作。
如果您使用故事板,那么一种方法是为图像视图的高度约束创建一个出口。
【讨论】:
以上是关于自调整大小表格单元格中的 ImageView 在应用 Aspect Fit 之前使用图像的高度的主要内容,如果未能解决你的问题,请参考以下文章
如何使用分页更改 tableview 自定义单元格中的 imageview 图像。
在自定义单元格中调整 iOS 7.1 中的 UILabel 大小