Animatable:纯SwiftUI动画修饰按钮和视图库





项目名称:Animatable

Animatable 是一个开源的 SwiftUI 动画库,它提供了多种动画修饰,可以应用于按钮、骨架屏和其他视图。以下是该项目的主要特点和使用方法:

特点

  • 提供多种自定义动画类型,如实时评论效果、爆炸效果、调整效果、缩放效果、旋转效果和烟花效果。

  • 支持动画组合,可以同时应用多个动画效果。

  • 支持骨架屏和其他视图的动画,如闪烁和渐变效果。

使用方法

在 SwiftUI 视图中导入 Animatable 模块,并使用提供的动画修饰:

import SwiftUI
import Animatable

创建一个按钮并应用动画效果:

@State var animate: Bool = false
...
Button {
    animate.toggle()
} label: {
    HStack(spacing: 8)  {
        Image(systemName: animate ? "heart.fill" : "heart")
            .resizable()
            .scaledToFit()
            .animate(.liveComments(stamps: 4),
                     animate: animate)
            .frame(width: 24, height: 24)
            .foregroundColor(.white)

        Text("Like")
            .font(.body)
            .fontWeight(.medium)
            .foregroundColor(.white)
    }
    .padding(12)
    .background(
        Rectangle()
            .fill(.pink.opacity(0.8))
            .cornerRadius(12)
    )
}

动画组合

可以将多个动画效果组合在一起使用:

Button {
    animate.toggle()
} label: {
    HStack(spacing: 8)  {
        Image(systemName: animate ? "sun.max.fill" : "sun.max")
            .resizable()
            .scaledToFit()
            .animate(.rotating,
                     animate: animate)
            .animate(.explosive(color: .red, factor: 2.0),
                     animate: animate)
            .animate(.explosive(color: .blue, factor: 1.4),
                     animate: animate)
            .animate(.fireworks(color: .yellow, factor: 3.5),
                     animate: animate)
            .frame(width: 24, height: 24)
            .foregroundColor(.red)

        Text("Combined")
            .font(.body)
            .fontWeight(.medium)
            .foregroundColor(.white)
    }
    .padding(12)
    .background(
        Rectangle()
            .fill(.blue.opacity(0.6))
            .cornerRadius(12)
    )
}

 

总结与扩展

Animatable 库通过提供丰富的动画效果,使得开发者能够轻松地为 SwiftUI 应用添加动态和吸引人的视觉效果。无论是按钮动画还是骨架屏动画,Animatable 都能满足需求,并且支持动画效果的自定义和组合,极大地增强了用户界面的交互性和视觉吸引力。

或许喜欢

AnimatedTabBar - 纯SwiftUI编写的动画标签栏

AnimatedTabBar是一个纯SwiftUI编写的动画标签栏库,提供多种预设动画效果,支持自定义和多种动画路径选择。

最近更新 2024-12-09

AnimateText:SwiftUI文本动画库支持iOS/macOS

AnimateText是一个用于SwiftUI的文本动画库,支持iOS和macOS平台,允许开发者创建自定义动画效果,增加应用的动态交互体验。

最近更新 2024-12-09

SwiftUI-Text-Animation-Library:SwiftUI文本动画库,多种动画效果让应用更生动

SwiftUI-Text-Animation-Library是一个SwiftUI文本动画库,提供多种动画效果,如轮盘、闪烁、块状、模糊、阴影和淡入淡出等,增强应用的动态视觉效果。

最近更新 2024-12-09

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1