故事板上的UIStackView强制固有内容的大小

时间:2018-12-07 21:40:55

标签: swift xcode uiimageview storyboard uistackview

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

enter image description here

想法?

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

1 个答案:

答案 0 :(得分:1)

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

首先,确保所有五个星形视图的“内容模式”均设置为“纵横比匹配”:

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