【发布时间】:2020-06-30 14:57:37
【问题描述】:
我刚开始使用SwiftUI 并使用它。
我已经面临这个挑战。
我有一个带有滑块的视图:
struct RangeSpanView: View {
@State var sliderValue = 0.0
var minimumValue = 0.0
var maximumValue = 100.0
var body: some View {
VStack {
Spacer()
HStack {
Text("\(Int(minimumValue))")
Slider(value: $sliderValue, in: minimumValue...maximumValue)
Text("\(Int(maximumValue))")
}.padding()
Text("\(Int(sliderValue))")
Spacer()
}
}
}
这是加载视图的代码。
var body: some View {
NavigationLink(destination: RangeSpanView(),
label: {
.......... // Useful code.
})
}
在这一点上,它并没有做太多,但它确实有效。尽管如此,这是我想做的,但我做不到。
我需要能够将参数传递给 RangeSpanView,以便我可以决定滑块的 minimumValue 和 maximumValue 值的自定义值。我已经尝试了几种我能想到或通过搜索网络找到的代码变体。但它们要么都不起作用,要么出现某种错误。
我的想法是我想要这样的东西:
RangeSpanView(minSliderVal: 20, maxSliderVal: 470)
工作,以便我可以根据需要调整视图。
这可能吗?正确的语法是什么?
【问题讨论】:
-
这将与 Swift 中的任何结构一样工作。所以,要么
RangeSpanView(minimumValue: 20, maximumValue: 470)(并将sliderValue设为私有)......要么创建一个自定义init(minSliderVal: Int, maxSliderVal: Int) -
将 sliderValue 设为私有,会产生错误消息:“无法将 'Double' 类型的值转换为预期的参数类型 'Binding
'”。 -
你把它改成了
@State private var sliderValue = 0.0并给出了这个错误?! -
是的,我尝试了大约 2 或 3 种变体,我认为这是其中之一。
-
我现在面临这个新挑战:stackoverflow.com/questions/62669320/…