如何在 SwiftUI 中制作简单的上下浮动动画?

Posted

技术标签:

【中文标题】如何在 SwiftUI 中制作简单的上下浮动动画?【英文标题】:How to make a simple up and down floating animation in SwitfUI? 【发布时间】:2020-03-21 19:46:36 【问题描述】:

我想让文本“Hello, World!”一旦视图出现,就会慢慢地上下浮动。

import SwiftUI

struct animate: View 
    var body: some View 
        Text("Hello, World!")
    

谢谢!

【问题讨论】:

【参考方案1】:

这是可能的简单方法。使用 Xcode 11.4 / ios 13.4 测试。当然可以根据需要调整参数。

struct BoncingView: View 
    @State private var bouncing = false
    var body: some View 
        Text("Hello, World!")
            .frame(maxHeight: .infinity, alignment: bouncing ? .bottom : .top)
            .animation(Animation.easeInOut(duration: 5.0).repeatForever(autoreverses: true))
            .onAppear 
                self.bouncing.toggle()
            
    

【讨论】:

我喜欢这个解决方案??【参考方案2】:

肯定有更好、更优雅的方法来解决它,但一种方法是:

struct ContentView: View 


    @State var y : CGFloat = 100
    @State var addThis: CGFloat = 100


    var body: some View 
        Text("Hello, World!")
            .position(x: 100, y: y)
            .onAppear() 
                Timer.scheduledTimer(withTimeInterval: 1, repeats: true)  (timer) in
                    withAnimation() 
                        self.addThis = -self.addThis
                        self.y = self.y + self.addThis
                    
                
        
    

【讨论】:

以上是关于如何在 SwiftUI 中制作简单的上下浮动动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 的 ScrollView 中制作动画? SwiftUI 中的手风琴风格动画

如何在 SwiftUI 中点击手势时放大缩小按钮动画?

如何制作这个浮动视图动画

如何修复适用于 SwiftUI 中文本的动画制作帧问题/错误?

Android FloatingActionButton(浮动动作按钮的动画 ) 使用详情

使用 SwiftUI 更改 macOS 窗口级别(制作浮动窗口)