条件に基づいてプロパティを追加するにはどうすればよいですか?
以下のコードでエラーが発生しましたCannot assign value of type 'some View' (result of 'Self.overlay(_:alignment:)') to type 'some View' (result of 'Self.onTapGesture(count:perform:)')
import SwiftUI
struct ConditionalProperty: View {
@State var overlay: Bool
var body: some View {
var view = Image(systemName: "photo")
.resizable()
.onTapGesture(count: 2, perform: self.tap)
if self.overlay {
view = view.overlay(Circle().foregroundColor(Color.red))
}
return view
}
func tap() {
// ...
}
}
Conditional Properties
を実装するための推奨される方法は以下のとおりです。アニメーションを適用している場合はうまく機能します。
他の方法をいくつか試しましたが、適用したアニメーションに影響します。
保持したfalseの代わりに条件を追加できます。conditionalView(false
)。
以下では、true
に切り替えて、'Hello、World!'が表示されることを確認できます[〜#〜] bold [〜#〜]。
struct ContentView: View {
var body: some View {
Text("Hello, World!")
.conditionalView(false)
}
}
extension View {
func conditionalView(_ value: Bool) -> some View {
self.modifier(ConditionalModifier(isBold: value))
}
}
struct ConditionalModifier: ViewModifier {
var isBold: Bool
func body(content: Content) -> some View {
Group {
if self.isBold {
content.font(.custom("HelveticaNeue-Bold", size: 14))
}else{
content.font(.custom("HelveticaNeue", size: 14))
}
}
}
}