SwiftUI iOS 开源组件之 按压效果button(教程含源码)

实战需求

SwiftUI iOS 开源组件之 按压效果button

本文价值与收获

看完本文后,您将能够作出下面的界面

SwiftUI iOS 开源组件之 按压效果button(教程含源码)_第1张图片
截屏2021-02-19 上午10.19.00.png
Jietu20210219-101916.gif

看完本文您将掌握的技能

  • ViewModifier 基础使用
  • @escaping 基础使用
  • @ViewBuilder 基础使用

基础知识

ViewModifier

应用于视图的修改器或另一个视图修改器,生成原始值的不同版本。

protocol ViewModifier

参考代码

struct PressActions: ViewModifier {
    var onPress: () -> Void
    var onRelease: () -> Void
    
    func body(content: Content) -> some View {
        content
            .simultaneousGesture(
                DragGesture(minimumDistance: 0)
                    .onChanged({ _ in
                        onPress()
                    })
                    .onEnded({ _ in
                        onRelease()
                    })
            )
    }
}


extension View {
    func pressAction(onPress: @escaping (() -> Void), onRelease: @escaping (() -> Void)) -> some View {
        modifier(PressActions(onPress: {
            onPress()
        }, onRelease: {
            onRelease()
        }))
    }
}

实战代码

你可能感兴趣的:(SwiftUI iOS 开源组件之 按压效果button(教程含源码))