我刚刚开始使用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)
工作,以便我可以根据自己的需要调整视图。
这可能吗,正确的语法是什么?
答案 0 :(得分:0)
要么删除minimumValue和maximumValue的默认值,要么添加一个像这样的init:
init(
minimumValue: CGFloat = 0.0,
maximumValue: CGFloat = 100.0
) {
self.minimumValue = minimumValue
self.maximumValue = maximumValue
}
或者如果您想更改这些值以使用@Binding var,以便可以从呈现它的视图中将其他@State变量传递给它们