【问题标题】:SwiftUI - how to increase Toggle's target touch size?SwiftUI - 如何增加 Toggle 的目标触摸大小?
【发布时间】:2021-04-10 06:29:04
【问题描述】:

出于可用性目的,我想增加 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()
    }
}

【问题讨论】:

    标签: swift swiftui toggle usability


    【解决方案1】:

    你可以试试这样的:

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

    【讨论】:

    • 哦!有用。但我需要在 .onTapGesture 之前添加.contentShape(Rectangle()) :)
    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多