故事板中的 UIStackView 强制内在内容大小

bha*_*tsb 1 xcode storyboard uiimageview swift uistackview

在故事板中,我已将 UIStackView 添加到 UIView 中,并在 UIStackView 内部添加了一个指定了图像的 UIImageView 。指定的图像位于 XCAssets 中,大小为 2X 59X60。UIImageView 将其宽度设置为这个固有大小,但我希望它是 44X44 并且图像能够缩放以适合。然而,在 Storyboard 中,ImageView 和 UIStackView 的高度设置被禁用并设置为 59X60。我想要在 UIStackView 内有 5 个带有星星的相同 ImageView 以 44X44 水平堆叠。

在此输入图像描述

有想法吗?

更新:似乎向 UIStackView 添加高度约束会导致缩放,但星形的外观会变形。

rob*_*off 5

宽度和高度字段呈灰色,因为图像视图位于堆栈视图内。您必须使用约束来控制堆栈视图排列的子视图的大小。

\n\n

首先,确保所有五个星形视图都将 \xe2\x80\x9cContent Mode\xe2\x80\x9d 设置为 \xe2\x80\x9cAspect Fit\xe2\x80\x9d:

\n\n

将内容模式设置为宽高比

\n\n

然后,将所有五个星形视图约束为彼此具有相同的宽度和高度:

\n\n

相等的宽度和高度约束

\n\n

最后,将星形视图之一限制为恒定宽度 44 和恒定高度 44:

\n\n

恒定的宽度和高度约束

\n\n

如果你想要星星之间有空间,请设置堆栈视图的 \xe2\x80\x9cSpacing\xe2\x80\x9d :

\n\n

堆栈视图间距

\n\n

如果您想在星星周围填充,可以在堆栈视图之外执行此操作,或者可以将堆栈视图的 \xe2\x80\x9cLayout Margins\xe2\x80\x9d\xc2\xa0 设置为固定常量(并关闭\xe2\x80\x9c安全区域相对边距\xe2\x80\x9d):

\n\n

堆栈视图布局边距

\n