ProHUD/Source/HUDConfig.swift

101 lines
2.9 KiB
Swift
Raw Normal View History

2019-07-31 17:40:39 +08:00
//
// HUDConfig.swift
// ProHUD
//
// Created by xaoxuu on 2019/7/29.
// Copyright © 2019 Titan Studio. All rights reserved.
//
import UIKit
public extension ProHUD {
struct Configuration {
2019-08-03 17:48:37 +08:00
/// Debug
public var enableDebugPrint = true
2019-08-08 09:25:28 +08:00
///
public var rootViewController: UIViewController?
2019-08-03 17:48:37 +08:00
/// iOS13
public lazy var dynamicColor: UIColor = {
2019-08-19 17:11:09 +08:00
// if #available(iOS 13.0, *) {
// let color = UIColor { (traitCollection: UITraitCollection) -> UIColor in
// if traitCollection.userInterfaceStyle == .dark {
// return .init(white: 1, alpha: 1)
// } else {
// return .init(white: 0.1, alpha: 1)
// }
// }
// return color
// } else {
// // Fallback on earlier versions
// }
2019-08-12 15:02:36 +08:00
return .init(white: 0.1, alpha: 1)
2019-08-03 17:48:37 +08:00
}()
///
public lazy var primaryLabelColor: UIColor = {
2019-08-08 09:25:28 +08:00
return dynamicColor.withAlphaComponent(0.8)
2019-08-03 17:48:37 +08:00
}()
///
public lazy var secondaryLabelColor: UIColor = {
2019-08-12 15:02:36 +08:00
return dynamicColor.withAlphaComponent(0.66)
2019-08-03 17:48:37 +08:00
}()
2019-08-12 15:02:36 +08:00
public func blurView(_ callback: @escaping () -> UIVisualEffectView) {
createBlurView = callback
}
2019-08-03 17:48:37 +08:00
public var toast = Toast()
public var alert = Alert()
public var `guard` = Guard()
2019-07-31 17:40:39 +08:00
/// Toast
/// - Parameter callback:
public mutating func toast(_ callback: @escaping (inout Toast) -> Void) {
callback(&toast)
}
/// Alert
/// - Parameter callback:
public mutating func alert(_ callback: @escaping (inout Alert) -> Void) {
callback(&alert)
}
/// Guard
/// - Parameter callback:
public mutating func `guard`(_ callback: @escaping (inout Guard) -> Void) {
callback(&`guard`)
}
}
}
2019-08-05 20:13:17 +08:00
///
2019-08-03 17:48:37 +08:00
internal var cfg = ProHUD.Configuration()
public extension ProHUD {
static func config(_ config: (inout Configuration) -> Void) {
config(&cfg)
}
}
2019-08-12 15:02:36 +08:00
internal var createBlurView: () -> UIVisualEffectView = {
return {
let vev = UIVisualEffectView()
if #available(iOS 13.0, *) {
2019-08-19 17:11:09 +08:00
// vev.effect = UIBlurEffect(style: .systemMaterial)
vev.effect = UIBlurEffect(style: .extraLight)
2019-08-12 15:02:36 +08:00
} else if #available(iOS 11.0, *) {
vev.effect = UIBlurEffect(style: .extraLight)
} else {
vev.effect = .none
vev.backgroundColor = .white
}
return vev
}
}()