使用不同的模式,如“Scale To Fill”,“Aspect Fit”,“Aspect Fill”来在UITableViewCell中使用UIImageView

时间:2015-05-18 11:03:57

标签: ios objective-c uitableview uiimageview autolayout

我在UIImageView中使用了UITableViewCell,它将填充contentView。我尝试了不同的模式,例如“Scale To Fill”,“Aspect Fit”,“”Aspect Fill“来handell UIImageView在UITableViewCell里面.UITableViewCell里面的UIImageView在Aspect Fill的屏幕上运行。我为图像设置了约束,如下所示enter image description here

  

它可以正常工作

enter image description here

  

但是当图像尺寸太大时,它会显示下面的问题   走出细胞边界

enter image description here

  

我使用了Aspect Fill,如下图所示

enter image description here

  

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

enter image description here

  

当我使用Scale To Fill时,我遇到了这个问题

enter image description here

  

Aspect FitScale To Fill中,我左右边距为   如上所示

     

以下链接无法解决我的问题所以它不重复

UIImageView inside UITableViewCell does not get updated

Resizing UIImageView inside a UITableViewCell

iOS 8 - AutoLayout issue - UIImageView inside UITableViewCell ignoring width constraints

5 个答案:

答案 0 :(得分:4)

您的表格视图单元格上有一个名为Clip subviews的选项。检查它是否已激活,它应该是好的。

答案 1 :(得分:2)

根据您的描述您的约束都设置正确。

Aspect Fill将通过保持图像的宽高比来绘制整个imageView内部。如果图像大于imageView的尺寸,则图像溢出。在这种情况下,您需要激活"剪辑子视图" imageView的属性检查器中的选项。

转到storyboard / xib中单元格的imageView属性检查器。根据"绘图"部分选择"剪辑子视图"是的。

这将使superView剪辑成为其子视图。在你的情况下,cell的contentView是superView,imageView是子视图。

答案 2 :(得分:1)

您需要为imageview,cell的contentview和cell启用剪辑子视图属性。还有一件事,我在添加约束时看到了这一点,你添加了带约束的约束。所以,删除旧的约束并再次添加新的约束,禁用约束到边缘。

如果有帮助,请告诉我。 :)

答案 3 :(得分:0)

我猜单元格中没有问题,它在Tableview中 将约束设置为使用此单元格的 Tableview 它会起作用。

答案 4 :(得分:0)

设置UIImageView的宽度和高度限制

删除其他约束并将以下约束设置为imageview ...!

UIImageView --> Editor --> Pin --> Width

UIImageView --> Editor --> Pin --> Height

参见

https://developer.apple.com/library/ios/recipes/xcode_help-IB_auto_layout/chapters/pin-constraints.html

希望它解决问题..!