SwiftUI - 如何更改Toggle中标签的文本对齐方式?

12

SwiftUI中切换的代码如下:

Toggle(isOn: $vibrateOnRing) {
    Text("Vibrate on Ring")
}

这将生成一个带文本标签的切换按钮,看起来像这样:

响铃时振动 | [--空格--] | 切换

我需要一个右对齐的文本标签,就像这样:

[--空格--] | 响铃时振动 | 切换

在SwiftUI中如何实现?

3个回答

22

这就是它

演示

Toggle(isOn: $vibrateOnRing) {
    Text("Vibrate on Ring")
      .frame(maxWidth: .infinity, alignment: .trailing)
}

太好了!谢谢。我先把这个加到Toggle上,但它没起作用。加到Text上就像预期的那样工作了。 - mallow
4
如何将它们都置于中心? - Sunil Targe

8

我通过将切换按钮和文本标签解耦来实现了这一点,也就是说:

HStack() {
    Spacer()
    Text("Vibrate on Ring")
    Toggle("", isOn: $vibrateOnRing).labelsHidden()
}

对于寻找居中对齐解决方案的人,可以这样做:

[--空格--] | 响铃震动 | 切换 | [--空格--]

只需添加尾随间距即可:
HStack() {
    Spacer()
    Text("Vibrate on Ring")
    Toggle("", isOn: $vibrateOnRing).labelsHidden()
    Spacer()
}

谢谢,我不知道有labelsHidden()这个函数! - FlorinD

0

这个对我有用

Toggle(isOn: $selPer, label: {
    HStack {
        Spacer()
        Image(systemName: "thermometer.sun")
            .foregroundColor(ITheme.IColor.sfImg)
            .font(.system(size: 12))
        if selPer {
            Text("关")
                .foregroundColor(Color.white)
                .font(ITheme.IFont.titleMin)
        } else {
            Text("开")
                .foregroundColor(Color.black)
                .font(ITheme.IFont.titleMin)
        }
    }
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接