一个 SwiftUI 修改器,允许视图像 iOS 主屏幕上的应用程序一样有条件地摆动

SwiftUI Wiggle 动画修改器

此存储库包含一个自定义 SwiftUI 修饰符,用于向任何 SwiftUI 添加“摆动”动画View这个想法的灵感来自GitHub 上的markmals此实现通过允许动画由布尔状态变量控制并提供自定义旋转和弹跳量来扩展原始想法。

模拟器.屏幕.录音.-.iPhone.14.Pro.-.2023-05-12.at.17.20.15.mp4

安装

只需将文件复制WiggleModifier.swift到您的项目中即可。

用法

在您的 SwiftUI 中,您可以像这样View使用修饰符:wiggling

struct ContentView: View {
    @State private var isWiggling = false

    var body: some View {
        VStack {
            Rectangle()
                .frame(width: 100, height: 100)
                .foregroundColor(.blue)
                .wiggling(isWiggling: $isWiggling, rotationAmount: 3, bounceAmount: 2)

            Button(action: {
                withAnimation {
                    self.isWiggling.toggle()
                }
            }) {
                Text(self.isWiggling ? "Disable Animation" : "Enable Animation")
            }
            .padding()
            .foregroundColor(.white)
            .background(Color.blue)
            .cornerRadius(10)
        }
    }
}

修饰符wiggling采用三个参数:

  1. isWiggling:Binding<Bool>控制摆动动画是否处于活动状态的。
  2. bounceAmountDouble:控制摆动动画反弹量的一个。
  3. rotationAmountDouble:控制摆动动画旋转量的A。

贡献

欢迎请求请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。

请确保适当地更新测试。

执照

GitHub

查看 Github