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
相关产品推荐
相关产品推荐

