Skip to content

Latest commit

 

History

History
201 lines (134 loc) · 7.21 KB

README_ZH.md

File metadata and controls

201 lines (134 loc) · 7.21 KB

SPM Xcode 14.2+ iOS 15.0+ SwiftUI 3.0+

此Package与Gitee同步,如果觉得SPM引入github地址偏慢可以使用Gitee。

HUD是基于SwiftUI开发的Loading弹窗工具,样式参考ProgressHUDPopupView

目前功能有 Loading,Progress,Success,Fail,PopupView,支持继承协议自定义样式以及弹出动画。

支持暗色模式

功能

在需要使用Loading或弹窗的的页面添加(仅遮盖当前页面,如果需要遮盖TabView或者NavigationView请直接添加在根View上,比如ContentView())

.addHUD()

各种内置弹窗

    //声明弹窗
    @State var loading = LoadingView(text: .constant(nil))

    @State var loadingText = LoadingView(text: .constant("loading...")@State var fail = FailView(text: .constant(nil))
    @State var succ = SuccessView(text: .constant(""))

Text和Progress需要绑定外部参数,所以可以这样用

    @State var progress: CGFloat = 0
    @State var progressView: StepView?

    @State var loadingText: String?
    @State var loading: LoadingView?

    //在适当的位置绑定
    .onAppear {
        progressView = StepView(progress: $progress)
        loading = LoadingView(text: $loadingText)
    }
    //修改当前progress或loadingText然后就可以自动变化了

剩下的只需要在触发位置

   Button {
       loading.showHUD()
   } label: {
       Text("Loading Short Text")
   }

或者根据状态控制

  .onChange(of: revenueCat.isPurchasing) { newValue in
       if newValue{
            loading.showHUD()
       }else{
            loading.dismissHUD()
       }
   }

关闭HUD

.dismissHUD()

适配器内有超多自定义功能

    //是否需要遮罩
    var needMask: Bool = true
    //弹窗背景颜色
    var backgroundColour: Color = .clear
    //弹窗忽略安全区域
    var ignoresSafeArea: Bool = false
    //点击区域外关闭弹窗
    var touchOutsideToDismiss: Bool = false
    //圆角弧度
    var cornerRadius: CGFloat = 10
    //手势关闭
    var dragGestureProgressToClose: CGFloat = 1/3
    //手势关闭动画
    var dragGestureAnimation: Animation = .interactiveSpring()
    
    //弹窗背景阴影颜色
    var shadowColour: Color = .black.opacity(0.2)
    var shadowRadius: CGFloat = 5
    var shadowOffsetX: CGFloat = 0
    var shadowOffsetY: CGFloat = 0
    
    //距离顶部的padding,默认为0,Top Popup会用到
    var topPadding: CGFloat = 0
    //距离底部的padding,默认为0,Bottom Popup会用到
    var bottomPadding: CGFloat = 0
    //Bottom PopupView自动添加安全区域高度
    var bottomAutoHeight: Bool = false
    
    
    //横向的padding,默认为0,大部分情况Center Popup会用到
    var horizontalPadding: CGFloat = 0
    //中间弹出动画执行时间
    var centerAnimationTime: CGFloat = 0.1
    //Center PopupView弹出动画比例
    var centerTransitionExitScale: CGFloat = 0.86
    //Center PopupView弹出动画比例
    var centerTransitionEntryScale: CGFloat = 1.1
    
    
    //弹出动画
    var transitionAnimation: Animation = .spring(response: 0.32, dampingFraction: 1, blendDuration: 0.32)

    //堆栈样式--露出位置--默认6
    var stackViewsOffset: CGFloat = 6
    //堆栈样式--比例
    var stackViewsScale: CGFloat = 0.06
    //堆栈样式--圆角
    var stackViewsCornerRadius: CGFloat = 10
    //堆栈样式--最大堆展示数量
    var maxStackCount: Int = 3
    
    
    //是否需要自动关闭
    var autoDismiss: Bool = false
    //自动关闭等候时长
    var autoDismissAfter: TimeInterval = 3

具体使用代码api以及详细效果参见Demo

安装

Swift Package Manager

从 Xcode 11 开始,集成了 Swift Package Manager,使用起来非常方便。HUD 也支持通过 Swift Package Manager 集成。

在 Xcode 的菜单栏中选择 File > Swift Packages > Add Pacakage Dependency,然后在搜索栏输入

https://github.com/jackiehu/HUD,即可完成集成

手动集成

HUD 也支持手动集成,只需把Sources文件夹中的HUD文件夹拖进需要集成的项目即可

更多砖块工具加速APP开发

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card

ReadMe Card