在Switch.adaptive上禁用拖动开关的解决方法是通过设置isEnabled
属性为false
来禁用开关的交互性。以下是一个示例代码:
import SwiftUI
struct ContentView: View {
@State private var isSwitchOn = true
var body: some View {
VStack {
Text("Switch状态: \(isSwitchOn ? "开启" : "关闭")")
.padding()
Switch.adaptive(isOn: $isSwitchOn)
.padding()
.onTapGesture(perform: disableSwitchDragging) // 添加点击手势处理函数
}
}
func disableSwitchDragging() {
isSwitchOn = !isSwitchOn // 点击开关时切换状态
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
这个示例中,我们在Switch.adaptive
上添加了一个点击手势处理函数disableSwitchDragging
。该函数会在点击开关时被调用,通过切换isSwitchOn
状态来禁用拖动开关。这样,用户就不能拖动开关来改变其状态。
请注意,这只是一种解决方法,根据你的实际需求可能会有其他更合适的方法。