gpt4 book ai didi

ios - SwiftUI:VStack/HStack/ZStack 拖动手势不起作用

转载 作者:行者123 更新时间:2023-12-02 03:07:46 24 4
gpt4 key购买 nike

我不明白为什么 DragGesture 在 VStack/HStack/ZStack 上不起作用。考虑以下简单示例:

struct ContentView: View {
@State private var offset = CGSize.zero

var body: some View {
VStack {
Text("Hello World!")
}
.frame(width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)
.edgesIgnoringSafeArea(.all)
.offset(y: offset.height)
.gesture(DragGesture()
.onChanged { val in
self.offset = val.translation
}
.onEnded { val in
self.offset = .zero
}
)
}
}

我希望整个 View 根据 offset var(通过拖动手势更改)上下移动。但即使我在 VStack 上编写 .gesture 修饰符,即使 VStack 是全屏的(感谢 .frame 修饰符)拖动手势在 VStack 上不起作用。仅当我拖动“Hello world”文本时,该手势才有效,但如果我拖动到 Text 外部(但仍在全屏 VStack 内部),该手势将无响应。有任何想法吗?谢谢。

最佳答案

实际上,SwiftUI 功能旨在解决该问题,无需背景。

只需将 .contentShape(Rectangle()) 放置在手势修饰符之前,它将响应整个封闭的矩形。 :)

关于ios - SwiftUI:VStack/HStack/ZStack 拖动手势不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59008409/

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