iOS开发,swift,多弹窗显示

多个弹窗在一个页面弹出,避免遮挡覆盖。一个弹完,再弹下一个,直到全部弹窗显示完成。

主要思路:弹窗在需要弹出时加入弹窗池,由弹窗池根据当前是否有弹窗以及优先级进行有序弹出。

配置类:

/// 闭包
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] 

版权声明:本文为qq_23930593原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。