SwiftUI 波纹效果

为你的 SwiftUI 视图添加酷炫的波纹效果。

特性

安装

Swift Package Manager

https://github.com/Jnis/SwiftUIRippleEffect.git

用法

  1. 创建一个共享的 RippleViewModel
  2. 通过 .rippleTouchHandler 方法添加触摸处理
  3. 通过 .rippleEffect 方法添加波纹效果视图
import SwiftUIRippleEffect

struct MyButton<V: View>: View {
    @State private var rippleViewModel = RippleViewModel() // 1
    
    let action: () -> Void
    let label: () -> V
    
    var body: some View {
        VStack {
            Button(action: {
                action()
            }, label: {
                label()
                    .contentShape(Rectangle())
                    .rippleTouchHandler17AndOlder(viewModel: rippleViewModel) // 2 (iOS17 and older)
            })
            .buttonStyle(EmptyStyle())
            .rippleTouchHandler(viewModel: rippleViewModel) // 2 (iOS18)
            .background(
                Capsule()
                    .foregroundColor(.yellow)
                    .rippleEffect(color: .gray,
                                  rippleViewModel: rippleViewModel,
                                  clipShape: Capsule()) // 3
            )
        }
    }
}

你可以在 /Examples 文件夹中找到更多示例。

注意

许可

MIT