我在 UITableViewCell
中使用了 UIImageView
并且它将填充contentView . 我已经尝试了不同的模式,如"Scale To Fill","Aspect Fit",“"Aspect Fill"到UITableViewCell里面的handell UIImageView.UITableViewCell里面的UIImageView在Aspect Fill中用完了屏幕 . 我已经设置了约束条件图片如下图所示
它工作正常如下
但是当图像尺寸太大时,它会显示出下面的问题,即它超出了单元边界
我使用了Aspect Fill,如下图所示
当我使用Aspect Fit时,我遇到了这个问题
当我使用Scale To Fill时,我遇到了这个问题
在Aspect Fit和Scale 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 回答
您的表格视图单元格上有一个名为
Clip subviews
的选项 . 检查它是否已激活,它应该是好的 .根据您的描述您的约束都设置正确 .
Aspect Fill将通过保持图像的纵横比来绘制imageView内部的整个内容 . 如果图像大于imageView的尺寸,则图像溢出 . 在这种情况下,您需要激活imageView的属性检查器中的“剪辑子视图”选项 .
转到storyboard / xib中单元格的imageView属性检查器 . 在“绘图”部分下,选择“剪辑子视图”为true .
这将使superView剪辑成为其子视图 . 在您的情况下,单元格的contentView是superView,imageView是子视图 .
您需要为imageview,cell的contentview和cell启用剪辑子视图属性 . 还有一件事,我看到你在添加约束时,你添加了带有边距的约束 . 所以,删除旧约束并再次添加新约束,禁用约束到边距 .
如果有帮助,请告诉我 . :)
我猜单元格中没有问题,它在Tableview中 .
Set constraints 到您使用此单元格的 Tableview .
它会工作 .
设置UIImageView的宽度和高度约束
删除其他约束并将下面的约束设置为imageview ...!
参考
https://developer.apple.com/library/ios/recipes/xcode_help-IB_auto_layout/chapters/pin-constraints.html
希望它解决问题..!