各种弹出窗口,主要包含Toast,Loading,Alert等HUD,以及各个方向的弹出式窗口。
用法详见demo。
1.在 Podfile 中添加 pod ‘SwiftShow’
2.执行 pod install 或 pod update
3.导入 import SwiftShow
从 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,其中包括多个种类
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)
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)
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)
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 )
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 )
通用工具
/// 获取顶层VC
public class func currentViewController() -> UIViewController?
link |
Stars: 31 |
Last commit: 3 weeks ago |
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics