SwiftUI - 如何增加 Toggle 的目标触摸尺寸?

mal*_*low 1 usability toggle swift swiftui

出于可用性目的,我想增加 Toggle 的目标大小。使用 .frame(width: 200, height: 200) 按钮很容易。但我不知道如何将其应用于切换。

这是我的代码。我已经标记了它在哪里有效,在哪里无效。

import SwiftUI

struct ContentView: View {
    
    @State private var test = true
    
    var body: some View {
        VStack {
            Text("Hello, world!")
                .padding()
            
            Button(action: {
                print("button pressed")
            }) {
                Image(systemName: "checkmark.circle.fill")
                    .font(.largeTitle)
                    // This works for Button
                    .frame(width: 200, height: 200)
            }
            
            Toggle(isOn: Binding<Bool>(
                    get: { test },
                    set: {
                        test = $0
                    })) {
                Text("Done")
            }
            // This doesn't work for Toggle
            .frame(width: 200, height: 200)
            .labelsHidden()
        }
        
        
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

Kuh*_*ann 5

你可以尝试这样的事情:

        Toggle(isOn: Binding<Bool>(
                get: { test },
                set: {
                    test = $0
                })) {
            Text("Done")
        }
        .frame(width: 200, height: 200)
        .labelsHidden()
        .contentShape(Rectangle())
        .onTapGesture {
                withAnimation {
                   test.toggle()
                }
        }
                   
Run Code Online (Sandbox Code Playgroud)