(macOS 10.15 beta和Xcode 11 beta 5)
我正在研究(https://www.raywenderlich.com/3715234-swiftui-getting-started#toc-anchor-005)的SwiftUI教程包括以下视图:
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 >>'”。
问题:如何声明一个绑定<< Double >>,其值为0.5以便在预览中使用?
(还:如何在问题中正确包含尖括号(不加倍)?
答案 0 :(得分:5)
值需要绑定。您可以使用“ .constant(0.5)”来解决此问题
#if DEBUG
struct ColorSliderView_Previews: PreviewProvider {
static var previews: some View {
ColorSliderView(value: .constant(0.5), textColor: .red)
}
}
#endif
但这仅用于测试。