首页 > 解决方案 > SwiftUI Slider 的标签可见性

问题描述

什么情况下SwiftUI Slider的标签可见? Sliderinits 可以接受标签参数,但我不明白这个标签是做什么用的?

 struct ContentView: View {
    @State private var slVal: CGFloat = -20
    var body: some View {
        Slider(value: $slVal, in: -40...40, minimumValueLabel: Text("-40"), maximumValueLabel: Text("40")) {
            Text("Invisible text") // This view is not visible 
        }
        .padding()
    }
 }

放入Slider内部Form不会使标签出现。我知道DatePicker' 的标签是否显示取决于.labelsHidden()修饰符以及修饰符DatePickerStyle应用的情况.datePickerStyle()。有没有类似的东西Slider

标签: swiftuislider

解决方案


这是 SwiftUI 中众所周知的错误。

这是可能的解决方法。使用 Xcode 12.1 / iOS 14.1 准备(向后兼容 SwiftUI 1.0)

演示

struct ContentView: View {
    @State private var slVal: CGFloat = -20
    var body: some View {
        HStack {
            Text("Invisible text")
            Slider(value: $slVal, in: -40...40, minimumValueLabel: Text("-40"), maximumValueLabel: Text("40")) {
                EmptyView()
            }
        }
        .padding()
    }
}

推荐阅读