1 Star 1 Fork 0

肖恒 / SwiftShow

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Version SPM Xcode 11.0+ iOS 11.0+ Swift 4.2+ Swift 5.0

各种弹出窗口,主要包含Toast,Loading,Alert等HUD,以及各个方向的弹出式窗口。

用法详见demo。

安装

cocoapods

1.在 Podfile 中添加 pod ‘SwiftShow’

2.执行 pod install 或 pod update

3.导入 import SwiftShow

Swift Package Manager

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

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

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

手动集成

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

使用

基本弹窗API全部都在Show.swift,其中包括多个种类

  1. Toast

    ///Toast适配器,主要处理Toast样式
    public class ShowToastConfig {
        ///执行动画时间 默认0.5
        public var animateDuration = 0.5
        ///Toast最大宽度  默认200
        public var maxWidth : Float = 200
        ///Toast最大高度 默认500
        public var maxHeight : Float = 500
        ///Toast默认停留时间 默认2秒
        public var showTime : Double = 2.0
        ///Toast圆角 默认5
        public var cornerRadius : CGFloat = 5
        ///Toast图文间距  默认0
        public var space : Float = 0
        ///Toast字体  默认15
        public var textFont : UIFont = UIFont.systemFont(ofSize: 15)
        ///Toast背景颜色 默认黑色
        public var bgColor : UIColor = UIColor.blackBGColor
        ///阴影颜色 默认clearcolor
        public var shadowColor : CGColor = UIColor.clear.cgColor
        ///阴影Opacity 默认0.5
        public var shadowOpacity : Float = 0.5
        ///阴影Radius 默认5
        public var shadowRadius : CGFloat = 5
        /// Toast文字字体颜色 默认白色
        public var textColor : UIColor = .white
        ///Toast图文混排样式 默认图片在左
        public var imageType : ImageButtonType = .imageButtonTypeLeft
        ///Toast背景与内容之间的内边距 默认10
        public var padding : Float = 10
        ///Toast 在屏幕的位置(左右居中调节上下)默认100
        public var offSet : Float = 100
        ///Toast 在屏幕的位置 默认中间
        public var offSetType : ToastOffset = .center
    }
        /// 展示toast
        /// - Parameters:
        ///   - text: 文本
        ///   - image: 图片 (可选参数)
        ///   - config: toast适配器,不传为默认样式
        public class func showToast(_ text: String, image: UIImage? = nil, config : ConfigToast? = nil)
  2. Loading

    默认样式 可图文 可添加阴影,遮罩
    ///Loading适配器
    public class ShowLoadingConfig {
        /// 是否背景透传点击 默认false
        public var enableEvent: Bool = false
        ///背景蒙版 毛玻璃
        public var effectStyle = UIBlurEffect.Style.light
        ///loading最大宽度 默认130
        public var maxWidth : Float = 130
        ///loading最大高度 默认130
        public var maxHeight : Float = 130
        ///圆角大小 默认5
        public var cornerRadius : CGFloat = 5
        ///加载框主体颜色 默认黑色
        public var tintColor : UIColor = UIColor.blackBGColor
        ///文字字体大小 默认系统字体15
        public var textFont : UIFont = UIFont.systemFont(ofSize: 15)
        ///文字字体颜色 默认白色
        public var textColor : UIColor = .white
        ///背景颜色 默认clear
        public var bgColor : UIColor = .clear
        ///默认蒙版类型 背景色
        public var maskType : MaskType = .color
        ///阴影颜色 默认clearcolor
        public var shadowColor : CGColor = UIColor.clear.cgColor
        ///阴影Opacity 默认0.5
        public var shadowOpacity : Float = 0.5
        ///阴影Radius 默认5
        public var shadowRadius : CGFloat = 5
        ///图片动画类型 所需要的图片数组
        public var imagesArray : [UIImage]?
        ///菊花颜色 不传递图片数组的时候默认使用菊花
        public var activityColor : UIColor = .white
        ///图片动画时间 默认1.0
        public var animationTime : Double = 1.0
        ///loading图文混排样式  默认图片在上
        public var imageType : ImageButtonType = .imageButtonTypeTop
        ///loading背景与内容之间的上下边距 默认20
        public var verticalPadding : Float = 20
        ///loading背景与内容之间的左右边距 默认20
        public var horizontalPadding : Float = 20
        ///loading文字与图片之间的距 默认0
        public var space : Float = 0
    }
        /// 在当前VC中展示loading
        /// - Parameters:
        ///   - text: 文本
        ///   - config: loading适配器
        public class func showLoading(_ text : String? = nil, config : ConfigLoading? = nil) 
        
        /// 隐藏上层VC中的loading
        public class func hiddenLoading() 
        
        /// 在window中展示loading
        /// - Parameters:
        ///   - text: 文本
        ///   - config: 配置
        public class func showLoadingOnWindow(_ text : String? = nil, config : ConfigLoading? = nil)
        
        /// 隐藏window中loading
        public class func hiddenLoadingOnWindow() 
        
        /// 在指定view中添加loading
        /// - Parameters:
        ///   - onView: view
        ///   - text: 文本
        ///   - config: 配置
        public class func showLoadingOnView(_ onView: UIView, text : String? = nil, config : ConfigLoading? = nil)
        
        /// 隐藏指定view中loading
        /// - Parameter onView: view
        public class func hiddenLoadingOnView(_ onView: UIView)
  3. Alert

    默认弹窗 可修改弹窗遮罩、阴影 可使用富文本
    ///Alert适配器
    public class ShowAlertConfig {
        ///背景蒙版 毛玻璃
        public var effectStyle = UIBlurEffect.Style.light
        ///执行动画时间
        public var animateDuration = 0.5
        ///alert宽度
        public var width : Float = 280
        ///alert最大高度
        public var maxHeight : Float = 500
        ///alert按钮高度
        public var buttonHeight : Float = 50
        ///alert圆角
        public var cornerRadius : CGFloat = 5
        ///alert图文混排样式
        public var imageType : ImageButtonType = .imageButtonTypeTop
        ///alert图文间距
        public var space : Float = 0
        ///alert标题字体
        public var titleFont : UIFont = UIFont.systemFont(ofSize: 21)
        /// alert标题字体颜色
        public var titleColor : UIColor = UIColor.textColor
        ///alert信息字体
        public var textFont : UIFont = UIFont.systemFont(ofSize: 14)
        /// alert信息字体颜色
        public var textColor : UIColor = UIColor.textColor
        ///alert按钮字体
        public var buttonFont : UIFont = UIFont.systemFont(ofSize: 15)
        /// alert按钮字体颜色
        public var leftColor : UIColor = UIColor.textColor
        public var rightColor : UIColor = UIColor.textColor
        ///alert主体颜色 默认
        public var tintColor : UIColor = UIColor.whiteBGColor
        ///alert背景颜色
        public var bgColor : UIColor = UIColor.black.withAlphaComponent(0.5)
        ///alert分割线颜色
        public var lineColor : UIColor = .lightGray
        ///默认蒙版类型
        public var maskType : MaskType = .color
        ///阴影
        public var shadowColor : CGColor = UIColor.clear.cgColor
        public var shadowOpacity : Float = 0.5
        public var shadowRadius : CGFloat = 5
    }
        /// 默认样式Alert
        /// - Parameters:
        ///   - title: 标题
        ///   - message: 信息
        ///   - leftBtnTitle: 左侧按钮标题
        ///   - rightBtnTitle: 右侧按钮标题
        ///   - leftBlock: 左侧按钮回调
        ///   - rightBlock: 右侧按钮回调
        public class func showAlert(title: String? = nil,
                                    message: String?  = nil,
                                    leftBtnTitle: String? = nil,
                                    rightBtnTitle: String? = nil,
                                    leftBlock: LeftCallBack? = nil,
                                    rightBlock: RightCallback? = nil) 
                                    
        /// 富文本样式Alert
        /// - Parameters:
        ///   - attributedTitle: 富文本标题
        ///   - attributedMessage: 富文本信息
        ///   - leftBtnAttributedTitle: 富文本左侧按钮标题
        ///   - rightBtnAttributedTitle: 富文本右侧按钮标题
        ///   - leftBlock: 左侧按钮回调
        ///   - rightBlock: 右侧按钮回调
        public class func showAttributedAlert(attributedTitle : NSAttributedString? = nil,
                                              attributedMessage : NSAttributedString? = nil,
                                              leftBtnAttributedTitle: NSAttributedString? = nil,
                                              rightBtnAttributedTitle: NSAttributedString? = nil,
                                              leftBlock: LeftCallBack? = nil,
                                              rightBlock: RightCallback? = nil)
                                              
                                                  /// 自定义Alert
        /// - Parameters:
        ///   - title: 标题
        ///   - attributedTitle: 富文本标题
        ///   - titleImage: 顶图
        ///   - message: 信息
        ///   - attributedMessage: 富文本信息
        ///   - leftBtnTitle: 左侧按钮标题
        ///   - leftBtnAttributedTitle: 富文本左侧按钮标题
        ///   - rightBtnTitle: 右侧按钮标题
        ///   - rightBtnAttributedTitle: 富文本右侧按钮标题
        ///   - leftBlock:  左侧按钮回调
        ///   - rightBlock: 右侧按钮回调
        ///   - config: Alert适配器,不传为默认样式
        public class func showCustomAlert(title: String? = nil,
                                          attributedTitle : NSAttributedString? = nil,
                                          titleImage: UIImage? = nil,
                                          message: String?  = nil,
                                          attributedMessage : NSAttributedString? = nil,
                                          leftBtnTitle: String? = nil,
                                          leftBtnAttributedTitle: NSAttributedString? = nil,
                                          rightBtnTitle: String? = nil,
                                          rightBtnAttributedTitle: NSAttributedString? = nil,
                                          leftBlock: LeftCallBack? = nil,
                                          rightBlock: RightCallback? = nil,
                                          config : ConfigAlert? = nil)
  4. pop

    public class ShowPopViewConfig {
        ///背景蒙版 毛玻璃
        public var effectStyle = UIBlurEffect.Style.light
        ///点击其他地方是否消失 默认yes
        public var clickOutHidden = true
        ///默认蒙版类型
        public var maskType : MaskType = .color
        ///背景颜色 默认蒙版
        public var bgColor : UIColor = UIColor.black.withAlphaComponent(0.3)
        ///执行动画时间
        public var animateDuration = 0.3
        ///动画是否弹性
        public var animateDamping = true
        ///动画是否弹性
        public var isAnimate = true
        /// 弹出视图样式位置
        public var showAnimateType : PopViewShowType? = .center
    }
        /// 弹出view
        /// - Parameters:
        ///   - contentView: 被弹出的View
        ///   - config: popview适配器
        ///   - showClosure: 弹出回调
        ///   - hideClosure: 收起回调
        public class func showPopView(contentView: UIView,
                                      config : ConfigPop? = nil,
                                      showClosure: CallBack? = nil,
                                      hideClosure: CallBack? = nil)
                                      
        /// 收起popview
        /// - Parameter complete: 完成回调
        public class func hidenPopView(_ complete : (() -> Void)? = nil )
  5. DropDown

    public class ShowDropDownConfig {
        ///背景蒙版 毛玻璃
        public var effectStyle = UIBlurEffect.Style.light
        ///点击其他地方是否消失 默认yes
        public var clickOutHidden = true
        ///默认蒙版类型
        public var maskType : MaskType = .color
        ///背景颜色 默认蒙版
        public var bgColor : UIColor = UIColor.black.withAlphaComponent(0.3)
        ///执行动画时间
        public var animateDuration = 0.3
        ///动画是否弹性
        public var animateDamping = true
        ///动画是否弹性
        public var isAnimate = true
        /// 弹出视图位置
        public var fromY : CGFloat = 88
    }
        /// 从NavBar或VC的view中弹出下拉视图,可以盖住Tabbar,但不遮挡NavBar
        /// - Parameters:
        ///   - contentView: 被弹出的view
        ///   - config: 适配器回调
        ///   - showClosure: 展示回调
        ///   - hideClosure: 隐藏回调
        ///   - willShowClosure: 即将展示回调
        ///   - willHideClosure: 即将收起回调
        public class func showCoverTabbarView(contentView: UIView,
                                              config: ((_ config : ShowDropDownConfig) -> Void)? = nil,
                                              showClosure: CallBack? = nil,
                                              hideClosure: CallBack? = nil,
                                              willShowClosure: CallBack? = nil,
                                              willHideClosure: CallBack? = nil) 
                                              
        /// 当前是否正在展示DropDown
        /// - Returns: true/false
        public class func isHaveCoverTabbarView() -> Bool
        
        /// 手动隐藏DropDown
        /// - Parameter complete: 完成回调
        public class func hidenCoverTabbarView(_ complete : (() -> Void)? = nil )
  6. 通用工具

    		/// 获取顶层VC
        public class func currentViewController() -> UIViewController?

更多砖块工具加速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

MIT License Copyright (c) 2020 张金虎 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

swift 各种弹窗 展开 收起
Swift 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Swift
1
https://gitee.com/xhea/SwiftShow.git
git@gitee.com:xhea/SwiftShow.git
xhea
SwiftShow
SwiftShow
master

搜索帮助