在 SwiftUI 中设置一个小切换开关的样式,就像 macOS 上的系统设置中的样式一样

Tza*_*zar 4 macos swiftui

一个小型 SwiftUI 切换开关

我正在尝试设计一个微小的切换开关,SwiftUI以匹配 macOS Ventura 上的系统设置应用程序中使用的外观。但是,该Toggle视图似乎没有提供足够的尺寸和外观自定义选项。

我们都知道常规尺寸拨动开关的代码:

Toggle("Regular Switch", isOn: $isRegular)
    .toggleStyle(.switch)
Run Code Online (Sandbox Code Playgroud)

有没有办法在最新版本中自动完成这种特定的外观SwiftUI?苹果是用什么方法来实现这一目标的呢?

rob*_*off 6

使用修饰符controlSize

import PlaygroundSupport
import SwiftUI

PlaygroundPage.current.setLiveView(VStack {
    Toggle("Default", isOn: .constant(false))

    ForEach(ControlSize.allCases, id: \.self) { size in
        Toggle(isOn: .constant(false)) {
            Text(verbatim: "\(size)")
        }
        .controlSize(size)
    }
}.toggleStyle(.switch))
Run Code Online (Sandbox Code Playgroud)

风格类似开关的切换开关支持所有尺寸