initial
This commit is contained in:
83
Pods/ZLPhotoBrowser/Sources/General/ZLCustomAlertProtocol.swift
generated
Normal file
83
Pods/ZLPhotoBrowser/Sources/General/ZLCustomAlertProtocol.swift
generated
Normal file
@@ -0,0 +1,83 @@
|
||||
//
|
||||
// ZLCustomAlertProtocol.swift
|
||||
// ZLPhotoBrowser
|
||||
//
|
||||
// Created by long on 2022/6/29.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public enum ZLCustomAlertStyle {
|
||||
case alert
|
||||
case actionSheet
|
||||
}
|
||||
|
||||
public protocol ZLCustomAlertProtocol: AnyObject {
|
||||
/// Should return an instance of ZLCustomAlertProtocol
|
||||
static func alert(title: String?, message: String, style: ZLCustomAlertStyle) -> ZLCustomAlertProtocol
|
||||
|
||||
func addAction(_ action: ZLCustomAlertAction)
|
||||
|
||||
func show(with parentVC: UIViewController?)
|
||||
}
|
||||
|
||||
public class ZLCustomAlertAction: NSObject {
|
||||
public enum Style {
|
||||
case `default`
|
||||
case tint
|
||||
case cancel
|
||||
case destructive
|
||||
}
|
||||
|
||||
public let title: String
|
||||
|
||||
public let style: ZLCustomAlertAction.Style
|
||||
|
||||
public let handler: ((ZLCustomAlertAction) -> Void)?
|
||||
|
||||
deinit {
|
||||
zl_debugPrint("ZLCustomAlertAction deinit")
|
||||
}
|
||||
|
||||
public init(title: String, style: ZLCustomAlertAction.Style, handler: ((ZLCustomAlertAction) -> Void)?) {
|
||||
self.title = title
|
||||
self.style = style
|
||||
self.handler = handler
|
||||
super.init()
|
||||
}
|
||||
}
|
||||
|
||||
/// internal
|
||||
extension ZLCustomAlertStyle {
|
||||
var toSystemAlertStyle: UIAlertController.Style {
|
||||
switch self {
|
||||
case .alert:
|
||||
return .alert
|
||||
case .actionSheet:
|
||||
return .actionSheet
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// internal
|
||||
extension ZLCustomAlertAction.Style {
|
||||
var toSystemAlertActionStyle: UIAlertAction.Style {
|
||||
switch self {
|
||||
case .default, .tint:
|
||||
return .default
|
||||
case .cancel:
|
||||
return .cancel
|
||||
case .destructive:
|
||||
return .destructive
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// internal
|
||||
extension ZLCustomAlertAction {
|
||||
func toSystemAlertAction() -> UIAlertAction {
|
||||
return UIAlertAction(title: title, style: style.toSystemAlertActionStyle) { _ in
|
||||
self.handler?(self)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user