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

实战需求

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

本文价值与收获

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

截屏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()
        }))
    }
}

实战代码

还有 75% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥5.98 继续阅读

推荐阅读更多精彩内容