UIImageView 上的方面适合在 UITableView 单元格中留下大量空白

Posted

技术标签:

【中文标题】UIImageView 上的方面适合在 UITableView 单元格中留下大量空白【英文标题】:Aspect fit on UIImageView leaves significant whitespace in a UITableView cell 【发布时间】:2017-05-02 21:45:25 【问题描述】:

所以我将图像加载到 UIImageView 中,但图像视图总是在两侧留下大量空白。它看起来像这样:

注意图像两侧的白色。这是设置图像的代码:

cell.albumArt.sd_setImage(with: result.getImageURL())

imageView 在 aspectFit 设置中。约束是:

图像超前导 图像顶部到超级顶部 图像底部到超级底部 文本导致图像拖尾 文本顶部到图像顶部

这里发生了什么?如何正确删除空格?

【问题讨论】:

我想根据您在此处指定的约束,您缺少图像的宽度约束。 如果图像纵横比与图像视图纵横比不匹配,Aspect Fit intentionally 会留下空白。您可以尝试 Aspect Fill - 但您也可能对结果不满意。 尝试为 imageView 设置背景颜色,以区分 contentMode 和约束之间的问题。 @DonMag 有没有办法让它左对齐,这样就没有任何空白了? @KerrM 即使设置大于或等于宽度约束也无济于事。 【参考方案1】:

您可以尝试scaleAspectFillclipToBounds == true,或者您可以设置最大宽度并使用scaleAspectFit,这将尝试在保持宽高比的同时将图像放入给定的约束框架内(但保留空白框架的两侧,相应地)。

scaleToFill 会破坏图片的宽高比。

This other question in SO has a pretty sweet answer that explains the differences between each mode

【讨论】:

以上是关于UIImageView 上的方面适合在 UITableView 单元格中留下大量空白的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 方面适合高度

调整UIImageView的大小以包装“适合方面”的图像

UITableViewCell 上的圆形 UIImageView 在首次加载时不起作用

视图负载上的更改约束常量没有影响

使用Xcode 6中的AutoLayout约束模拟方面适合行为

当用户开始在 UIImageView 上滑动时,UITableView 滑动操作不起作用