【问题标题】:How can you get a transition to a new view similar to how an App is opened in SwiftUI? [duplicate]如何转换到类似于在 SwiftUI 中打开 App 的新视图? [复制]
【发布时间】:2026-01-26 09:35:02
【问题描述】:
因此,当您在 iPhone 上打开一个应用程序时,它会从您的 AppIcon 转换为一个看起来完全不同的视图,并且感觉很自然。我尝试在下面的 GIF 图像中模拟动画。你会如何在 SwiftUI 中实现这个效果?
您可能需要刷新才能看到动画。
我将通过一些示例代码来增强这个问题,说明我今晚已经走了多远,但也许其他人会更早地进行演示。那太棒了。
【问题讨论】:
标签:
animation
view
swiftui
transition
【解决方案1】:
为了让您了解动画在 SwiftUI 中的工作原理以及如何组合它们,我为您制作了这个由两部分组成的小动画:
struct SplashScreen: View {
@State private var circleAlpha = 1.0
@State private var sizeCircle: CGFloat = 0
@State private var textAlpha = 1.0
func handleAnimations() {
runAnimationPart1()
let deadline: DispatchTime = .now() + 1
DispatchQueue.main.asyncAfter(deadline: deadline) {
self.runAnimationPart2()
}
}
func runAnimationPart1() {
withAnimation(.easeIn(duration: 1)) {
textAlpha = 0
}
}
func runAnimationPart2() {
withAnimation(.easeIn(duration: 1)) {
sizeCircle = 1400
}
}
var body: some View {
ZStack {
Text("Your App Icon")
.font(.largeTitle)
.foregroundColor(Color.green)
.opacity(textAlpha)
Circle()
.fill(Color.blue)
.frame(width: sizeCircle, height: sizeCircle,
alignment: .leading)
.opacity(circleAlpha)
}
.onAppear() {
self.handleAnimations()
}
} }