フェードアニメーション
extension View {
@ViewBuilder
func overlayFadeView<OverlayView: View>(isPresented: Binding<Bool>, @ViewBuilder overlay: () -> OverlayView) -> some View {
ZStack {
self
if isPresented.wrappedValue {
VStack {
overlay()
.transition(.opacity)
.zIndex(1)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.blue)
}
}
}
}
フェードアニメーション
使い方
var body: some View {
Text("遷移元画面")
.overlayFadeView(isPresented: $isPresented) {
Text("遷移先画面")
}
}

