You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中如何在Form的Toggle下方添加规范说明文本

实现iPhone设置风格的带说明文本的Toggle

要复刻苹果设置里控件下方带说明文本的规整样式,你需要将标题和说明文本整合到同一个Toggle的label中,而非作为Form的单独行。这样二者会处于同一个单元格内,自动匹配苹果的排版规范。

修改后的代码如下:

struct SomeView: View {
    @State private var someBool = true
    
    var body: some View {
        Form {
            Toggle(isOn: $someBool) {
                VStack(alignment: .leading, spacing: 4) {
                    Text("I am a toggle")
                    Text("This is now formatted correctly :)")
                        .font(.caption)
                        .foregroundColor(.gray)
                }
            }
        }
        .navigationBarTitle("Some form")
        .navigationBarTitleDisplayMode(.inline)
    }
}

关键修改点:

  • 不再给Toggle直接传字符串标题,而是通过闭包自定义label内容
  • 用VStack(alignment: .leading)将主标题和说明文本垂直排列,设置合适的spacing匹配苹果的间距
  • 说明文本保持.caption字体和灰色,和系统样式一致

原来的代码问题在于把Toggle和说明文本分成了Form的两个独立行,导致排版分散;整合到同一个Toggle的label后,它们会被Form视为一个整体单元格,自动应用系统的内边距和排版规则,完美匹配官方样式。

内容的提问来源于stack exchange,提问作者neo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:18:12