戴夫·亚伯拉罕(Dave Abrahams)在WWDC19中关于“自定义视图”的演讲中解释了SwiftUI布局的一些机制,但是他遗漏了一些内容,因此我难以正确调整视图的大小。
View是否有一种方法可以告诉其容器它没有提出任何空间需求,但是会使用给定的所有空间?另一种说法是容器应拥抱其子视图。
具体的例子,我想要类似c的东西:
如果a)中Text
的VStack
like中包含一些,则VStack
将会采用其宽度作为最宽的子视图。
如果您Rectangle
在b)中添加了一个ough,它将尽可能扩展,直到VStack
填充其容器。
这表明Text
s和Rectangle
s在布局Text
方面属于不同的类别,具有固定的大小并且a Rectangle
贪婪。但是,如果我要自己制作容器,该如何将其传达给容器View
?
我实际上想要达到的结果是c)。VStack在确定其大小时应忽略Rectangle(或我的自定义视图),然后做到这一点,然后应告知Rectangle或我的自定义视图可以有多少空间。
鉴于SwiftUI似乎是自下而上地布局,也许这是不可能的,但似乎应该有some
办法实现。