SwiftUI滑块';s标签可见性
在什么情况下,SwiftUI滑块';s标签可见性,swiftui,slider,Swiftui,Slider,在什么情况下,SwiftUI滑块的标签可见? Sliderinits可以接受标签参数,但我不明白这个标签的用途是什么 struct ContentView: View { @State private var slVal: CGFloat = -20 var body: some View { Slider(value: $slVal, in: -40...40, minimumValueLabel: Text("-40"), maximum
SwiftUI
滑块的标签可见?
Slider
inits可以接受标签参数,但我不明白这个标签的用途是什么
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()
}
}
将滑块
放入表单
不会使标签出现。我知道,DatePicker
的标签是否显示取决于.labelsHidden()
修饰符以及.DatePickerStyle()
修饰符应用的DatePickerStyle
。
是否有类似于滑动条的东西?这是SwiftUI中众所周知的错误
这里有可能的解决方法。使用Xcode 12.1/iOS 14.1编写(向后兼容SwiftUI 1.0)
对@Asperi中的解决方案进行了轻微修改:
func slider<V, C>(
value: Binding<V>,
in bounds: ClosedRange<V> = 0...1,
label: () -> C,
onEditingChanged: @escaping (Bool) -> Void = { _ in }
) -> some View where V : BinaryFloatingPoint,
V.Stride : BinaryFloatingPoint,
C: View {
HStack {
label()
Slider(
value: value,
in: bounds,
onEditingChanged: onEditingChanged,
label: { EmptyView() }
)
}
}
看起来更像是一个未完成的东西,而不是一个粗体的bug。这可能很方便,但我希望他们在将来的某个时候会修复标签,并为滑块提供一些样式,就像为按钮
、选择器
、文本字段
、切换等所做的那样。也许一个方便的init(不是一个自由函数)在这里更合适?
func slider<V, C>(
value: Binding<V>,
in bounds: ClosedRange<V> = 0...1,
label: () -> C,
onEditingChanged: @escaping (Bool) -> Void = { _ in }
) -> some View where V : BinaryFloatingPoint,
V.Stride : BinaryFloatingPoint,
C: View {
HStack {
label()
Slider(
value: value,
in: bounds,
onEditingChanged: onEditingChanged,
label: { EmptyView() }
)
}
}
slider(value: $aValue, in: -1...1, label: {
Text("aValue")
})