gpt4 book ai didi

ios - SwiftUI-无法将 View 拖到 ScrollView 之外

转载 作者:行者123 更新时间:2023-12-01 16:20:49 26 4
gpt4 key购买 nike

这是我的布局的一个非常简化的版本。我有一个可以拖动的 TextView ...

struct DragView: View {
var text:String

@State var dragAmt = CGSize.zero

var body: some View {
Text(text)
.padding(15)
.background(Color.orange)
.cornerRadius(20)
.padding(5)
.frame(width: 150, height: 60, alignment: .leading)
.offset(dragAmt)
.gesture(
DragGesture(coordinateSpace: .global)
.onChanged {
self.dragAmt = CGSize(width: $0.translation.width, height: $0.translation.height)
}
.onEnded {_ in
self.dragAmt = CGSize.zero
})
}
}

然后我像这样安排这些 View :
struct ContentView: View {
var body: some View {
HStack {
ScrollView {
VStack {
DragView(text: "hi")
DragView(text: "hi")
DragView(text: "hi")
}
}
Divider()
VStack {
DragView(text: "hi")
DragView(text: "hi")
DragView(text: "hi")
}
}
}
}

不在 ScrollView 中的 View 按预期运行,我可以将它们拖到整个屏幕上。但是,如果将 ScrollView 中的 View 带到 ScrollView 的边界之外,它们将会消失。

为什么会出现这种情况?有什么办法可以将这些 View 拖到 ScrollView 之外?

最佳答案

Why does this occur?



你拖,你只是看不到它,因为 ScrollView剪辑其内容 View 。默认情况下,堆栈不会。如果添加 .clipped()底部 VStack你会看到同样的情况。

Is there any way to enable these views to be dragged outside the ScrollView?



解决方案可能是使用 ZStack。说在拖动时,您在 ScrollView 中隐藏一个 View ,并在同一全局位置显示相同的 ScrollView 外,因此在视觉上它的行为与拖动原始 View 一样。

关于ios - SwiftUI-无法将 View 拖到 ScrollView 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60440084/

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