gpt4 book ai didi

swiftui - 如何更改特定区域的工作表的 DragGesture?

转载 作者:行者123 更新时间:2023-12-04 07:57:50 28 4
gpt4 key购买 nike

如果我有一个打开工作表的按钮:

Button(action: { show = true }, label: { Text("Open" })
.sheet(isPresented: $show){
Text("Sheet view")
}
完整的工作表是“可移动的”/有一个 DragGesture .有什么方法可以停用此功能或定义此 DragGesture 的区域吗?我想把它放在工作表的上 10% 处。
enter image description here

最佳答案

可能的解决方案是使用工作表(所需区域)的背景并阻止 DragGesture .
这是方法的演示。使用 Xcode 12.4/iOS 14.4 测试
demo

struct TestSheetDraggableArea: View {
@State private var show = false
var body: some View {
Button(action: { show = true }, label: { Text("Open") })
.sheet(isPresented: $show){
SheetView()
}
}
}

struct SheetView: View {

var body: some View {
GeometryReader { gp in
VStack(spacing: 0) {
Color.red.overlay(Text("Draggable Area"))
.frame(height: gp.size.height * 0.1)
Color.clear.overlay(
Text("Sheet view") // << content here
)
.contentShape(Rectangle()) // makes hit testable
.gesture(DragGesture()) // << blocks sheet dragging !!!
}
}.ignoresSafeArea()
}
}

关于swiftui - 如何更改特定区域的工作表的 DragGesture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66613016/

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