【发布时间】:2021-01-22 14:17:37
【问题描述】:
我正在尝试通过使用“dragger”(圆角灰色矩形)元素来增加形状的高度。我使用 SwiftUI 提供的 DragGesture 助手来获取用户手指的当前位置。不幸的是,在拖动事件期间,由于某种原因,内容正在跳跃。
您能帮我找出问题的根本原因吗?
这是拖动事件期间的外观
如果我删除 Spacer() 一切正常,但不是我想要的
这是我的代码 sn-ps
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
}
}
import SwiftUI
let MIN_HEIGHT = 50
struct CustomDraggableComponent: View {
@State var height: CGFloat = MIN_HEIGHT
var body: some View {
VStack {
Rectangle()
.fill(Color.red)
.frame(width: .infinity, height: height)
HStack {
Spacer()
Rectangle()
.fill(Color.gray)
.frame(width: 100, height: 10)
.cornerRadius(10)
.gesture(
DragGesture()
.onChanged { value in
height = value.translation.height + MIN_HEIGHT
}
)
Spacer()
}
}
}
【问题讨论】:
标签: swiftui