swiftui-如何更改切换中标签的文本对齐?

问题描述 投票:0回答:4
this将产生一个带有文本标签的切换按钮,看起来像这样:

振动| [ -  empty空间 - ] |切换

我需要一个右键的文本标签,例如:

[ - 空空间 - ] |在环上振动|切换

如何在Swiftui中进行?

在这里是

swift swiftui toggle text-alignment
4个回答
29
投票

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

demo 我能够通过解开切换按钮和文本标签来实现这一目标,即:

HStack() { Spacer() Text("Vibrate on Ring") Toggle("", isOn: $vibrateOnRing).labelsHidden() }
对于正在寻找中心对齐解决方案的人们,也就是:

14
投票

[ - 空空间 - ] |在环上振动|切换| [ - empty空间 - ]

添加一个尾随的垫片:

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

在这里,您可以使用

ToggleStyle

struct CompressedToggleStyle: ToggleStyle {
    func makeBody(configuration: Configuration) -> some View {
        HStack {
            configuration.label
            Toggle("", isOn: configuration.$isOn)
                .labelsHidden()
        }
    }
}

extension ToggleStyle where Self == CompressedToggleStyle {
    static var compressed: CompressedToggleStyle {
        CompressedToggleStyle()
    }
}

0
投票
// Example usage @State var isOn = false Toggle("Toggle me!", isOn: $isOn) .toggleStyle(.compressed)


这对我有用
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)
        }
    }
})
    

-1
投票
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.