首页 文章

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

提问于
浏览
5

我在 UITableViewCell 中使用了 UIImageView 并且它将填充contentView . 我已经尝试了不同的模式,如"Scale To Fill","Aspect Fit",“"Aspect Fill"到UITableViewCell里面的handell UIImageView.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 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 回答

  • 0

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

  • 0

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

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

    转到storyboard / xib中单元格的imageView属性检查器 . 在“绘图”部分下,选择“剪辑子视图”为true .

    这将使superView剪辑成为其子视图 . 在您的情况下,单元格的contentView是superView,imageView是子视图 .

  • 1

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

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

  • 4

    我猜单元格中没有问题,它在Tableview中 .
    Set constraints 到您使用此单元格的 Tableview .
    它会工作 .

  • 2

    设置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

    希望它解决问题..!

相关问题