AutoLayout - 保持图像与水平约束的比例

问题描述 投票:0回答:1

我一直在尝试实现图片的时间线(如 Instagram 或 Facebook)。 然而,我一直在努力解决图像的比例问题。

这是我的 xib,其中包含我的 Cell : enter image description here

我希望图片保持其比例并完全填充单元格的宽度。 我在 UIImageView 上设置了 4 个自动布局约束,水平约束为 0-0,顶部/底部约束为 5-5。我还将 ViewMode 设置为“Aspect Fit”。

我尝试过不同的设置:

  1. 将 UIImageView 的高度设置为特定值: --> 修改图像的宽度以保持图像比例
  2. 不要设置UIImageView的高度 --> 它认为高度等于 0,因此甚至不显示图像
  3. 设置高度大于或等于特定值: --> 与 1 相同的行为。(修改图像的宽度以保持图像比例)

我从 URL 加载图像,因此我一直在使用 lib Haneke (https://github.com/Haneke/HanekeSwift) 和以下函数: imageView.hnk_setImageFromURL(url).

它可以自动调整图像大小,但我不知道如何获取图像的原始宽度/高度来手动设置高度。

同样,我想要的是图片保持其比例并完全填充单元格的宽度。

有人有建议吗?

ios autolayout uiimageview
1个回答
0
投票

这是我想出的设置。这是一个快速而肮脏的演示,但我假设您希望图像始终居中。您可以在情节提要中设置水平和垂直中心约束以使其始终保持居中 如果你希望它始终完全填满视图,可以将

Equal Height
替换为
Equal Width
,但这样做时,由于宽高比限制,imageView 在某些尺寸上会超出屏幕

Autolayout Setup

我还提供了不同尺寸的视图屏幕截图

Any

Portrait

Landscape

© www.soinside.com 2019 - 2024. All rights reserved.