加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Xcode Imageview Aspect Fit删除额外空间

发布时间:2020-12-15 01:47:02 所属栏目:百科 来源:网络整理
导读:我在UITableViewCell中有一个imageview. 如果图像很大,使用Aspect Fit的Imageview会在顶部和底部创建大量额外空间.额外空间(灰色背景色)如下图所示. 如何删除额外空间? 几点说明: 此特定图像为890 x 589,屏幕截图是在iphone 6S模拟器上拍摄的. 我使用UITab
我在UITableViewCell中有一个imageview.

如果图像很大,使用Aspect Fit的Imageview会在顶部和底部创建大量额外空间.额外空间(灰色背景色)如下图所示.

如何删除额外空间?

Imageview Extra Space


几点说明:

>此特定图像为890 x 589,屏幕截图是在iphone 6S模拟器上拍摄的.
>我使用UITableViewAutomaticDimension来自动表格单元格高度.
> imageview上没有高度限制,因此可以相应地调整大小.

先谢谢你.

解决方法

我遇到过同样的问题.当原始图像大小(宽度和/或高度)大于保存它的UIImageView并且使用Aspect Fit调整图像大小以适合UIImageView时,会发生这种情况.

这里,图像宽度大于可以放入UIImageView的图像宽度,因此Aspect Fit会调整图像大小,保持原始高宽比.如果您读取图像大小(通过手表或断点或其他东西),您将看到图像大小(例如)600(h)x 800(W)(3:4比率). UIImageView宽度是(例如)320(w),因此显示的图像缩放到240(h)×320(w)(保持3:4比率).但是图像宽度仍然是真正的600 x 800,并且由于UIImageView高度没有限制,UIImageView尺寸为600 x 320 – >它将UIImageView高度设置为原始图像高度(600),因为它可以.

我的解决方案是:(Swift 3)

将高度约束添加到Main.storyboard中的UIImageView并通过Outlet链接它:

@IBOutlet weak var displayimage: UIImageView!
@IBOutlet weak var displayimageHeightConstraint: NSLayoutConstraint!

然后测试UIImageView是否比它所拥有的图像更小(宽度).如果是这样,请设置高度约束,以使UIImageView高度:宽度比与图像宽高比相同:

if displayimage.frame.size.width < (displayimage.image?.size.width)! {
    displayimageHeightConstraint.constant = displayimage.frame.size.width / (displayimage.image?.size.width)! * (displayimage.image?.size.height)!
}

如果由于调整UIImageView高度受限且宽度设置为原始图像宽度的问题而在图像的两侧存在空白,则也可以进行补充操作.

@IBOutlet weak var displayimageWidthConstraint: NSLayoutConstraint!

if displayimage.frame.size.height < (displayimage.image?.size.height)! {
    displayimageWidthConstraint.constant = displayimage.frame.size.height / (displayimage.image?.size.height)! * (displayimage.image?.size.height)!
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读