【问题标题】: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()
        }
    } }
    

    【讨论】:

      最近更新 更多