SwiftUI 预览中的绑定<Double>
Binding<Double> in SwiftUI preview
(macOS 10.15 测试版和 Xcode 11 测试版 5)
我正在学习的 SwiftUI 教程 (https://www.raywenderlich.com/3715234-swiftui-getting-started#toc-anchor-005) 包括以下视图:
struct ColorSliderView: View {
@Binding var value: Double
let textColor: Color
var body: some View {
HStack {
Text("0").foregroundColor(textColor)
Slider(value: $value, in: 0.0...1.0)
Text("255").foregroundColor(textColor)
}.padding()
}
}
该视图已在与另一个视图相同的文件中声明,并且可以作为该视图的一个组件进行预览。
在教程中使用它是有效的,但我后来将视图提取到它自己的文件中并添加了以下预览:
#if DEBUG
struct ColorSliderView_Previews: PreviewProvider {
static var previews: some View {
return ColorSliderView(value: 0.5, textColor: .red)
}
}
#endif
这会引发错误“无法将类型 'Double' 的值转换为预期的参数类型 'Binding<< Double >>'”。
问题:如何声明一个值为 0.5 的 Binding<< Double >> 用于预览?
(另外:我如何在问题中正确地包含尖括号(不加倍)?
值需要绑定。您可以使用 .constant(0.5)
解决此问题
#if DEBUG
struct ColorSliderView_Previews: PreviewProvider {
static var previews: some View {
ColorSliderView(value: .constant(0.5), textColor: .red)
}
}
#endif
但这只是为了测试。
(macOS 10.15 测试版和 Xcode 11 测试版 5)
我正在学习的 SwiftUI 教程 (https://www.raywenderlich.com/3715234-swiftui-getting-started#toc-anchor-005) 包括以下视图:
struct ColorSliderView: View {
@Binding var value: Double
let textColor: Color
var body: some View {
HStack {
Text("0").foregroundColor(textColor)
Slider(value: $value, in: 0.0...1.0)
Text("255").foregroundColor(textColor)
}.padding()
}
}
该视图已在与另一个视图相同的文件中声明,并且可以作为该视图的一个组件进行预览。
在教程中使用它是有效的,但我后来将视图提取到它自己的文件中并添加了以下预览:
#if DEBUG
struct ColorSliderView_Previews: PreviewProvider {
static var previews: some View {
return ColorSliderView(value: 0.5, textColor: .red)
}
}
#endif
这会引发错误“无法将类型 'Double' 的值转换为预期的参数类型 'Binding<< Double >>'”。
问题:如何声明一个值为 0.5 的 Binding<< Double >> 用于预览?
(另外:我如何在问题中正确地包含尖括号(不加倍)?
值需要绑定。您可以使用 .constant(0.5)
#if DEBUG
struct ColorSliderView_Previews: PreviewProvider {
static var previews: some View {
ColorSliderView(value: .constant(0.5), textColor: .red)
}
}
#endif
但这只是为了测试。