根据可用屏幕尺寸在给定范围内自动调整UIbutton的高度

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

我正在尝试(以编程方式)使用“自动布局”来产生以下场景。如图所示,在任何屏幕尺寸下,按钮的高度都不能大于56,而小于44。顶部内容视图根据其内部内容具有自己的大小,但其顶部锚点的顶部填充最小值必须为8。它可以大于8。按钮和内容视图之间的填充严格为8pts。底部锚点的底部填充严格为12。我唯一可以玩的是按钮的高度,可以在小屏幕上调整所有内容。

enter image description here

Tries1)我尝试将所有按钮放在堆栈视图中,并将高度限制都放到每个按钮上。

button.heightAnchor.constraint(lessThanOrEqualToConstant: 56).isActive = true
button.heightAnchor.constraint(greaterThanOrEqualToConstant: 44).isActive = true

但是按钮的高度从不增加超过44。现在,当我在主视图和顶视图之间使用严格的8设置顶部约束时,它可以正常工作。>

contentView.topAnchor.constraint(equalTo: topAnchor, constant: 8).isActive = true

而不是

contentView.topAnchor.constraint(greaterThanOrEqualTo: topAnchor, constant: 8).isActive = true

但是这不适用于较大的屏幕,因为顶视图需要比顶视图更靠近按钮。

2)当我不使用堆栈视图并将两个高度限制都设置到每个按钮时,无论它是哪个设备,它的增加都不会超过44。如果我删除了更大的44限制,那么大小按钮的数量减少到36。我尝试将优先级设置为最上面的8个约束以及按钮约束的高度,以及在内容视图和顶部按钮之间设置长宽比约束,然后将所有其他按钮的高度都设置为顶部按钮,然后再次,最多只能坚持到44。

请提出建议或提供任何解决方案,以解决此问题。

我正在尝试(以编程方式)使用“自动布局”来产生以下场景。如图所示,在任何屏幕尺寸下,按钮的高度都不能大于56,而小于44。顶部...

ios objective-c swift autolayout
1个回答
0
投票

如果您对自己“说出来”,这确实很简单。

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