背景
SwiftUIで、@Binding
しているColor
をfill()
やstroke()
に指定したらエラーになる
struct SelectColorView: View {
@Binding var selectedColor: Color
...
}
struct Play: View {
@ObservedObject var viewModel = SelectColorViewModel()
var body: some View {
Circle()
.fill(self.$viewModel.selectedColor)
}
}
L.11
Instance method ‘stroke(_:lineWidth:)’ requires that ‘Binding ‘ conform to ‘ShapeStyle’
原因
@Binding
された変数は、型がBinding
でwrapされていて、Binding<Color>
型になっている
解決策
@Binding
された変数のwrappedValue
を使う
struct Play: View {
@ObservedObject var viewModel = SelectColorViewModel()
var body: some View {
Circle()
.fill(self.$viewModel.selectedColor.wrappedValue)
}
}
SwiftUI初めてで、
@Bindingとかよくわからんけどめっちゃ便利じゃん!🥳
とか言ってたらまんまとはまった
@Bindingとかよくわからんけどめっちゃ便利じゃん!🥳
とか言ってたらまんまとはまった
コメント