赞
踩
多个弹窗在一个页面弹出,避免遮挡覆盖。一个弹完,再弹下一个,直到全部弹窗显示完成。
主要思路:弹窗在需要弹出时加入弹窗池,由弹窗池根据当前是否有弹窗以及优先级进行有序弹出。
配置类:
- /// 闭包
- public typealias CPopupManagerComplete = () -> Swift.Void
-
- /// 优先级枚举
- enum CPopupPriority: Int {
- case low = 1
- case medium = 2
- case high = 3
- }
-
- class CPopupConfig: NSObject {
-
- /// 是否被拦截:默认YES
- var isIntercept = true
- /// 当前弹窗是否在展示
- var isShowing = false
- /// 弹窗优先级:默认为High
- var priority: CPopupPriority = .high
- /// 弹窗标识:以类名为标识
- var popupClassName: String = ""
- /// 展示回调
- var showBlock: CPopupManagerComplete?
- /// 隐藏回调
- var dismissBlock: CPopupManagerComplete?
- }

弹窗池管理类:
-
- class CPopupManager: NSObject {
- /// 单例
- static var shared = CPopupManager()
- /// 弹窗池
- private var popupPool: [String: CPopupConfig]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。