gpt4 book ai didi

ios - 当空间受限时减少元素之间的空间量

转载 作者:行者123 更新时间:2023-11-29 02:00:37 25 4
gpt4 key购买 nike

想象一下这样的情况,您有三个并排的按钮。您希望这三个按钮填充可用宽度,并且是具有最小尺寸设置的完美正方形,并且它们之间具有一定的空间量。要进行此设置,您将受到以下限制:

答:
1:1 比 A
通向 super View
宽度和高度 >= 25

乙:
与 A 相等的宽度和高度
通向 A:50

C:
与 A 相等的宽度和高度
通往B:50
跟踪到 super View

现在假设可用宽度足够小,以至于没有足够的水平空间来确保按钮是一个完美的正方形,每个按钮之间的距离为 50。您不想打破宽高比和宽度限制,而是希望减少按钮之间的空间量。我的问题是,你是怎么做到的?

我以为我只需将主要约束的关系更改为小于或等于,但这会导致这两个约束的不等式约束模糊性。我想也许我需要指定前导的最小值,因此我添加了两个大于或等于 10 的前导约束。这并没有解决歧义。然后,我添加了另一组领先约束,这次等于两个值之间的设定值,然后我降低了这些约束的优先级。这解决了歧义,但是按钮之间的空间永远不会减少 - 它始终是我为具有 equals 约束的约束设置的值,尽管其优先级较低。

需要设置哪些约束才能获得此结果?

  • 三个按钮并排显示在同一水平空间
  • 所有三个按钮都是完美的正方形
  • 按钮的最小尺寸 (25x25)
  • 它们之间有一定的空间 - 50
  • 当水平间距太小而无法保证全部满足约束时,应减小按钮之间的间距。

最佳答案

您可能需要一个具有所需优先级的间距约束,以表示允许的最小间距。例如,>= 10 @1000。

然后,您需要一个较低优先级的间距约束,用等式表示所需的间距,例如 == 50 @200。

但是,您有两个按钮间空间。出现歧义是因为当没有足够的可用空间来制作所需的距离时,自动布局不知道要减少哪个。

您可以设置不同的优先级来解决歧义,但随后一个间距会缩小,而另一个间距保持在 50,直到达到最小值,此时另一个间距也会缩小。

我怀疑您希望两个空间始终相等。没有直接的方法可以仅通过约束来做到这一点。相反,您需要使用隐藏的间隔 View 。所以,你会做这样的事情:

|-[buttonA][spacer1(>=10,==50@200)][buttonB(==buttonA)][spacer2(==spacer1)][buttonC(==buttonA)]-|

关于ios - 当空间受限时减少元素之间的空间量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30430271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com