弹窗统一化
项目简介
此项目为移动端开发弹窗库,包含了各端使用的公共弹窗,几种基本动画等。(目前分成5类弹窗样式,2类Toast样式及5类动画)
使用方法
根据UI给出弹窗样式及动画,调用不同方法以实现样式
弹窗部分
一,
/// 样式中一定带内容,可带图片,title和按钮的样式
/// - Parameters:
/// - img: 展示的图片头部View,可不传
/// - title: 展示的标题,可不传
/// - content: 展示的内容,必传
/// - confirm: 确认按钮,可不传,默认文案为确定
/// - cancel: 取消按钮,可不传,不传则默认展示一个按钮
/// - Returns: 返回所展示view
@objc public class func popupsTipContent(imgView: UIImageView? = nil, title: String? = nil, content: String , confirm: String? = nil, cancel: String? = nil, style: EKPopStyle = EKPopStyle()) -> EKPopupsView
{
let btnNameTuples = btnTextDefalut(confirmStr: confirm, cancel: cancel)
return EKPopupsView.innerView(imgView, title: title, content: content, confirm: btnNameTuples.confirmTitle, cancel: btnNameTuples.cancelTitle, style: style)
}
用该方法实现UI设计的以下几种样式:
二,
/// 弹窗中包含内容,平铺按钮,可能包含标题的样式
/// - Parameters:
/// - title: 标题文案
/// - content: 内容文案
/// - confirm: 确认按钮文案
/// - cancel: 取消按钮文案
/// - Returns: EKPopupsView弹窗
@objc public class func popupsContentTile(popTitle title: String? = nil, content: String, confirm: String? = nil, cancel: String? = nil, style: EKPopStyle = EKPopStyle()) -> EKPopupsView
{
let btnNameTuples = btnTextDefalut(confirmStr: confirm, cancel: cancel)
return EKPopupsView.ContentView(title, content: content, confirm: btnNameTuples.confirmTitle, cancel: btnNameTuples.cancelTitle, style: style)
}
用该方法实现UI设计的以下几种样式:
三,
/// 外部有图片类弹窗
/// - Parameters:
/// - image: 展示的图片头部View
/// - title: 标题文案
/// - content: 内容文案
/// - confirm: 确定按钮文案
/// - cancel: 取消按钮文案
/// - Returns: 外部有图片类弹窗
@objc public class func popupsOutView(imgView: UIImageView? = nil, title: String? = nil, content: String, confirm: String? = nil, cancel: String? = nil, style: EKPopStyle = EKPopStyle()) -> EKPopupsView
{
let btnNameTuples = btnTextDefalut(confirmStr: confirm, cancel: cancel)
return EKPopupsView.outImageView(imgView, title: title, content: content, confirm: btnNameTuples.confirmTitle, cancel: btnNameTuples.cancelTitle, style: style)
}
用该方法实现UI设计的以下几种样式:
四,
/// 弹窗内上图下包含list,title的样式
/// - Parameters:
/// - image: 展示的图片头部View
/// - title: 标题文案
/// - content: 内容文案
/// - confirm: 确定按钮文案
/// - cancel: 取消按钮文案
/// - Returns: 带list弹窗
@objc public class func popupsListView(imgView: UIImageView? = nil, title: String? = nil, content: String, confirm: String? = nil, cancel: String? = nil, style: EKPopStyle = EKPopStyle()) -> EKPopupsView
{
let btnNameTuples = btnTextDefalut(confirmStr: confirm, cancel: cancel)
return EKPopupsView.pushTipView(imgView, closeImage: nil, title: title, content: content, confirm: btnNameTuples.confirmTitle, cancel: btnNameTuples.cancelTitle, style: style)
}
用该方法实现UI设计的以下几种样式:
五,
/// 只有一张图片的弹窗
/// - Parameter image: 弹窗的图片显示
/// - Returns: 只带图片的弹窗
@objc public class func grandUpgradeView(_ image: UIImageView) -> EKPopupsView
{
let popView = EKPopupsView.init()
popView.innerView = image
popView.grandTipView()
return popView
}
此方法实现只有一张图片的样式
Toast部分:
一,
1,
self.view.makeToast("请在阅读并同意用户协议和隐私政策后使用")
2,
let img = UIImage.imageWithColor(UIColor.red)
self.view.makeToast(image: img, message: "没有填入分数,请重添")
二,
通过创建EKWLoadProgressView实例,来实现下载toast展示
动画部分:
根据UI给出动画,实现5种动画实现
///用来控制几种默认动画的展示
public enum AnimationType
{
case none;
case scale; ///一般弹窗微小缩放效果
case version; ///类似新版本出来效果
case question; ///考试中切换题型效果,微小缩放
case popUpSucess; ///pk挑战成功页面,缩放有弹簧回弹效果
case popUpFail; ///pk挑战失败,从左边平移出来,平移到右侧消失
case popLocScale; ///根据具体位置放大
}
//在show方法中调用
如不传值,则没有动画显示小火
以上内容在pod 的 example 中均有实现,具体可下载查看使用。
功能实现
1,点击按钮回调可通过vc.addClickBlock方法添加。
2,传递imageView二级标题可通过外部定义UIlabel实现。