如何在SwiftUI中实现macOS系统设置风格的小型切换开关?
在SwiftUI中实现macOS Ventura系统设置风格的小型切换开关
一、最新SwiftUI中的自动实现方法
在适配macOS Ventura及以上的SwiftUI版本中,无需复杂自定义,通过controlSize修饰符即可快速实现系统设置风格的小型开关:
Toggle("Small Switch", isOn: $isSmall) .toggleStyle(.switch) .controlSize(.small)
controlSize(.small)会自动匹配系统预设的小型控件规格,包括开关的尺寸、间距和视觉样式,直接对齐系统设置的UI风格。
二、Apple的实现方式
系统设置中的开关本质是AppKit原生NSSwitch的SwiftUI封装。Apple通过ControlSize枚举定义了不同尺寸层级的控件规范,SwiftUI的Toggle会根据指定的controlSize自动调用对应规格的原生控件样式,内部已经处理好圆角、颜色、交互反馈等细节,确保与系统UI统一。如果需要极致自定义,也可以通过自定义ToggleStyle直接包装NSSwitch,但常规场景下使用controlSize即可满足需求。
内容的提问来源于stack exchange,提问作者Tzar
相关产品推荐
相关产品推荐

