如何在SwiftUI中使用DragGesture更改对象的高度?

如何在SwiftUI中使用DragGesture更改对象的高度?,swiftui,Swiftui,我试图通过使用“dragger”(圆角灰色矩形)元素来增加形状的高度。我使用SwiftUI提供的DragGesture帮助程序获取用户手指的当前位置。不幸的是,在拖动事件期间,由于某些原因,内容正在跳跃 你能帮我找出问题的根本原因吗 这是拖动事件期间的外观 如果我移除Spacer()一切正常,但不是我想要的 这是我的代码片段 import SwiftUI struct ContentView: View { var body: some View { VStack {

我试图通过使用“dragger”(圆角灰色矩形)元素来增加形状的高度。我使用SwiftUI提供的
DragGesture
帮助程序获取用户手指的当前位置。不幸的是,在拖动事件期间,由于某些原因,内容正在跳跃

你能帮我找出问题的根本原因吗

这是拖动事件期间的外观

如果我移除
Spacer()
一切正常,但不是我想要的

这是我的代码片段

import SwiftUI

struct ContentView: View {
  
  var body: some View {
    VStack {
      CustomDraggableComponent()
      
      Spacer() // If comment this line the result will be as on the bottom GIF example
    }
}

正确的计算方法是

.gesture(
    DragGesture()
        .onChanged { value in
            height = max(MIN_HEIGHT, height + value.translation.height)
        }
)
此外,删除无限宽度。这是无效的

.frame(minHeight: 0, maxHeight: height)

or 

.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: height)

谢谢,问题出在
height
属性中。我算错了
.frame(minHeight: 0, maxHeight: height)

or 

.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: height)