关于swift:情节提要中的UIStackView会强制固有内容的大小

UIStackView in storyboard forces intrinsic content size

在情节提要中,我已将UIStackView添加到UIView中,并且在UIStackView中添加了具有指定图像的UIImageView。 指定的图像位于XCAsets中,其2X大小为59X60。 UIImageView将其宽度设置为此固有大小,但我希望它的大小为44X44,并且图像要缩放以适合。 但是,在Storyboard中,with和Height设置被禁用,并且对于ImageView和UIStackView也设置为59X60。 我想在UIStackView中以44X44的水平方向堆叠星号中的5个相同的ImageViews。

enter image description here

有想法吗?

更新:似乎向UIStackView添加了高度限制会导致缩放,但是星形会变形。


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

首先,确保所有五个星形视图的"内容模式"都设置为"纵横比适合":

set content mode to aspect fit

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

equal widths and heights constraints

最后,将其中一个星形视图约束为具有恒定的宽度44和恒定的高度44:

constant width and height constraints

如果要在星星之间留出空间,请设置堆栈视图的"间距":

stack view spacing

如果要在星星周围进行填充,则可以在堆栈视图之外执行此操作,也可以将堆栈视图的"布局边距"设置为固定常量(并关闭"安全区域相对边距"):

stack view layout margins