【发布时间】:2021-06-11 08:47:30
【问题描述】:
我有以下横UIStackView
- 黄色背景
- 前导、顶部和尾部与安全区域相同
- 对齐 = 顶部
- 分配 = 按比例填充
UILabel 作为孩子
如果我将UILabel 添加为其子级,它将自动将高度内容包装如下
UIImage 作为孩子
我用 3 个相同的 UIImageView 替换 UILabel。
每个UIImageView 都有以下属性
- 内容模式 = Aspect Fit
如下图
我想知道,我怎样才能让水平的UIStackView 换行到它的高度内容?
我希望UIStackView 将包裹UIImageView 的内容高度。因此,我们不会观察到UIStackView 的任何黄色背景。
请问,我怎样才能做到这一点?
到目前为止,我已经尝试过使用
- UIStackView 和 UIImageView 的内容拥抱优先级
- UIStackView 和 UIImageView 的内容压缩阻力优先级
仍然无法达到我想要的结果。
以下是原图源,为606x404
【问题讨论】:
-
运行时模拟器的行为与xcode的视图编辑器相同。
-
@CheokYanCheng - 每一个图片都会是
606 x 404吗?或者你想要 3 个等宽的“部分”,每个 imageView 都设置为Aspect Fit?或者,您想要 3 个可变宽度“部分”,每个图像的高度相同,但宽度不同? -
我的最终目标是实现以下目标 - i.imgur.com/98JjT6U.png 在 Android 中,执行权重计算后,我可以告诉 LinearLayout(又名 StackView)我想要第一张图像的 10% 宽度,50% 宽度第二张图片和第三张图片的 40% 宽度。图像高度将根据重量和纵横比进行调整。然后,LinearLayout 将自动包裹其高度以包裹调整后的图像高度。现在,我尝试从最简单的情况开始(所有 3 张相同的图像),但卡住了。
-
@SandeepBhandari 没有。这绝对可以实现。如上面简单的例子,对于一个宽度为 428 的屏幕,我们需要将每个图像缩放到 142.667 x 95.111。然后,它可以完全填充宽度并尊重原始图像的纵横比。
-
从您发布的演示屏幕截图和解释中,我无法清楚地看到您建议的方式是如何工作的。我的预期结果如下 - i.imgur.com/t9CxDIk.png 您发布的所有屏幕截图仅包含 1 只小猫而不是 3 只小猫。