Swiftui 在VStack中填充项目时,是否可以只向下推动其下方的项目,而不向上推动其上方的项目?

Swiftui 在VStack中填充项目时,是否可以只向下推动其下方的项目,而不向上推动其上方的项目?,swiftui,xcode11,swiftui-list,vstack,Swiftui,Xcode11,Swiftui List,Vstack,在标题中用词有点难,但这是我的情况。 我有一个VStack,我需要在堆栈中点击的项目下方设置一个间隙动画 例如,我尝试将.padding(.bottom,istaped?50:0)添加到项目中,但它没有产生所需的结果。例如,如果项目X是我点击的项目,这就是我使用此方法获得的行为 empty space --> X-1 X-1 --> X X --> space created X+1 --> X+1 empty

在标题中用词有点难,但这是我的情况。 我有一个VStack,我需要在堆栈中点击的项目下方设置一个间隙动画

例如,我尝试将.padding(.bottom,istaped?50:0)添加到项目中,但它没有产生所需的结果。例如,如果项目X是我点击的项目,这就是我使用此方法获得的行为

empty space -->  X-1
X-1         -->  X
X           -->  space created
X+1         -->  X+1
empty space -->  empty space
基本上,正如我试图说明的,它向上推动X上方的项目,同时向下推动X下方的项目

有没有办法去做我想做的事?一种将X及其上方的项目固定到位的方法,以便下方的项目将移动

编辑: 这里有一个更真实的例子,当点击中间的项目时,会导致在其下方添加填充,但不幸的是,这并不仅仅是将前两个项目留在原来的位置,然后向下推第三个项目。但它将前两个向上移动,第三个向下移动。(另外,填充并不像下面的示例中所示那样放置,而是在项目视图本身内(如果这样做会产生差异的话)


VStack根据其内容选择其大小。听起来包含VStack的视图有很多额外的垂直空间。由于VStack比其superview小,因此它在其superview内居中(在上方和下方留下空白)。当VStack垂直增长时(添加填充时),它将保持居中,并向上和向下两个方向增长

您可以在超级视图的顶部固定VStack,方法是在其下方添加一个垫片,并用新的VStack将两者包裹起来。然后,将填充添加到项目时,VStack将保持固定在顶部,而任何额外的空间将添加到下面

    VStack {
        VStack {
            // Items:  X-1, X, X + 1                
         }
        Spacer()
    }

如果这不能解决您的问题,请显示您的代码。视图的对齐和放置取决于您的特定代码。

我编辑了一点问题,在底部添加了更多的信息,我尝试在VStack中添加一个间隔符作为最后一项,但不幸的是,问题仍然存在。我已经用文本而不是您的项目对其进行了测试&它可以工作。因此,还有一些事情正在发生,如果不是不可能的话,很难在没有看到更多代码的情况下知道发生了什么。请显示项目结构的代码。可能还需要查看此VStack下方或上方屏幕上显示的所有代码的其余部分。最后,ISTAMP是如何设置的?正如您所拥有的,所有项目将同时在其下方创建填充。
    VStack {
        VStack {
            // Items:  X-1, X, X + 1                
         }
        Spacer()
    }