使用不同的模式如“缩放填充”、“适应宽高比”、“填充宽高比”来处理UITableViewCell中的UIImageView。

5
我在UITableViewCell中使用了UIImageView,并且它会填充contentView。我尝试了不同的模式,如“缩放以填充”、“适应大小”、“适应大小并填充”,来处理UITableViewCell内的UIImageView。在“适应大小并填充”的情况下,UITableViewCell内的UIImageView超出了屏幕范围。我已经设置了图像的约束,如下所示 enter image description here

以下是正常工作的情况

enter image description here

但是当图像尺寸过大时,会出现以下问题,即它超出了单元格边界。

enter image description here

我已使用“Aspect Fill”,如下图所示。

enter image description here

当我使用“Aspect Fit”时,我遇到了这个问题。

enter image description here

当我使用“缩放填充”时,出现了这个问题。

enter image description here

Aspect FitScale To Fill 模式下,如上所示,我在左右两侧得到了边距

下面的链接没有解决我的问题,因此不是重复的

UITableViewCell 中的 UIImageView 不会更新

调整 UITableViewCell 中的 UIImageView 的大小

iOS 8 - AutoLayout 问题 - UITableViewCell 中的 UIImageView 忽略宽度约束


你尝试过设置UIImageView的不同模式,比如“缩放填充”,“适应宽高比”,“填充宽高比”等吗? - iPhone
是的,正确的!!!@iPhone - iGatiTech
我已经使用了Aspect Fill。 - Nischal Hada
请尝试使用其他UIImageView模式!! - Rashmi Ranjan mallick
你需要为ImageView、Cell的ContentView和Cell启用ClipsToBounds属性。我看到在添加约束时,您将其设置为带边距的。因此,请删除旧约束,并再次使用禁用边距约束的新约束。如果有帮助,请告诉我。 :) - Tejvansh
好的,我会尝试并检查一下。 - Nischal Hada
5个回答

4

您的表视图单元格上有一个名为剪辑子视图的选项。检查它是否已激活,这样就可以了。


2
根据您的描述,您的限制都设置正确了。
Aspect Fill会通过保持图像的宽高比来绘制整个imageView。如果图像大于imageView的尺寸,则图像会溢出。在这种情况下,您需要在storyboard/xib中激活imageView的属性检查器中的“剪切子视图”选项。
进入到单元格的imageView属性检查器中,在“Drawing”部分选择将“Clips subviews”设置为true。
这将使superView剪切其子视图。在您的情况下,cell的contentView是superView,imageView是subview。

1
你需要为imageview、cell的contentview和cell启用剪切子视图属性。还有一件事,我注意到当您添加约束时,您使用了带边距的约束。因此,请删除旧约束并再次添加新约束,并禁用边距约束。
如果有帮助,请告诉我 :)

前往您的单元格xib,选择imageview,并按照此链接操作:https://dev59.com/Gmw15IYBdhLWcg3wSJs3 - Tejvansh
如果我的回答对您有帮助,请标记为正确,这样其他人就知道应该遵循哪个答案。 :) - Tejvansh

0

我猜这个问题不在单元格里,而是在Tableview中。
设置你使用这个单元格的Tableview约束条件
它会起作用的。


问题不在单元格上。 - Nischal Hada
好的,当你设置Aspect Fill时会发生什么?你还没有展示它。 而且,剪辑子视图是在那个图片视图的属性检查器中。 - Samir
我的问题与Aspect Fill有关。检查一下问题吧,老兄。 - Nischal Hada
哥们儿,这就是它应该工作的方式。在Aspect fill中,它将尝试维护图像的纵横比(宽度和高度),而在scale to fill中(它将缩放任何图像大小)。但是要尝试剪辑子视图。 - Samir
好的,我会尝试的。 - Nischal Hada

0

在XIB中,您将在顶部的工具栏上拥有编辑器选项。单击编辑器-->固定-->宽度/高度。或者您可以使用上面的链接设置约束。请查看我的更新答案以获取链接...! - Vidhyanand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接