// // a.swift // xiaoshengyun // // Created by wang on 2018/10/9. // Copyright © 2018年 wang. All rights reserved. // import UIKit import MBProgressHUD extension MBProgressHUD { class func showh(_ text: String, yOffset: CGFloat = 0, delay: TimeInterval = 2) { hide(animated: false) let view: UIView = KeyWindow // 快速显示一个提示信息 let hud = MBProgressHUD.showAdded(to: view, animated: true) // 允许背景可点击 hud.isUserInteractionEnabled = false hud.bezelView.style = .solidColor hud.mode = .customView let size = text.boundingRect(with: CGSize(width: 150, height: 300), options: .usesLineFragmentOrigin, attributes: [.font: RegularFont(14)], context: nil).size let w = Int(size.width) let h = Int(size.height)//??? hud.minSize = CGSize(width: w + 60, height: h + 30) let bgView = UIView(frame: CGRect(x: 5, y: 5, width: w + 30, height: h + 20)) let titleLabel = UILabel(frame: CGRect(x: 15, y: 10, width: w+1, height: h+1)) titleLabel.text = text titleLabel.numberOfLines = 0 titleLabel.textAlignment = .center titleLabel.font = RegularFont(14) titleLabel.textColor = UIColor.rgbColorFromHex(0xF2F2F2) // // shadowCode // titleLabel.layer.shadowColor = UIColor(white: 1, alpha: 0.1).cgColor //// UIColor(red: 0, green: 0, blue: 0, alpha: 0.08).cgColor // titleLabel.layer.shadowOffset = CGSize(width: 0, height: 0) // titleLabel.layer.shadowOpacity = 1 // titleLabel.layer.shadowRadius = 6 // fill bgView.backgroundColor = UIColor.rgbColorFromHex(0x808080) bgView.layer.cornerRadius = 5 bgView.layer.masksToBounds = true hud.bezelView.addSubview(bgView) bgView.addSubview(titleLabel) // hud.bezelView.layer.shadowColor = UIColor.rgbaColorFromHex(0x050000, alpha: 0.1).cgColor // UIColor(white: 0, alpha: 0.1).cgColor // UIColor(red: 0, green: 0, blue: 0, alpha: 0.08).cgColor /* hud.bezelView.layer.shadowOffset = CGSize(width: 0, height: 0) hud.bezelView.layer.shadowOpacity = 1 hud.bezelView.layer.shadowRadius = 4 */ // hud.bezelView.layer.borderWidth = 0 // hud.isSquare = true // 隐藏时候从父控件中移除 hud.removeFromSuperViewOnHide = true hud.offset.y = yOffset if delay != 0 { hud.hide(animated: true, afterDelay: delay) } // 0.9秒之后再消失 } class func showInView(_ text: String?, icon: String? = nil, view: UIView) { // guard let view: UIView = UIApplication.shared.keyWindow else { return } // 快速显示一个提示信息 let hud = MBProgressHUD.showAdded(to: view, animated: true) // 允许背景可点击 hud.isUserInteractionEnabled = false hud.label.text = text hud.label.font = UIFont.boldSystemFont(ofSize: 16) // 设置图片 if let icon = icon { let image = UIImage(named: "MBProgressHUD.bundle/\(icon)")?.withRenderingMode(.alwaysTemplate) hud.customView = UIImageView(image: image) } // 再设置模式 hud.mode = .customView // hud.isSquare = true // 隐藏时候从父控件中移除 hud.removeFromSuperViewOnHide = true // 0.9秒之后再消失 hud.hide(animated: true, afterDelay: 1.8) } public class func showSuccess(_ message: String?) { self.hide() self.showh_old(message, icon: "success") } public class func show(_ message: String?) { self.hide() self.showh_old(message) } /// 显示错误提示 @objc public class func showError(_ message: String?) { self.hide() self.showh_old(message, icon: "error") } class func showh_old(_ text: String?, icon: String? = nil) { let view: UIView = KeyWindow // 快速显示一个提示信息 let hud = MBProgressHUD.showAdded(to: view, animated: true) // 允许背景可点击 hud.isUserInteractionEnabled = false hud.label.text = text hud.label.font = UIFont.boldSystemFont(ofSize: 16) // 设置图片 if let icon = icon { let image = UIImage(named: "MBProgressHUD.bundle/\(icon)")?.withRenderingMode(.alwaysTemplate) hud.customView = UIImageView(image: image) } // 再设置模式 hud.mode = .customView // hud.isSquare = true // 隐藏时候从父控件中移除 hud.removeFromSuperViewOnHide = true // 0.9秒之后再消失 hud.hide(animated: true, afterDelay: 1.8) } /// 显示菊花 public class func showMessage(_ message: String?) -> MBProgressHUD? { hide() let view: UIView = KeyWindow // 快速显示一个提示信息 let hud = MBProgressHUD.showAdded(to: view, animated: true) hud.isUserInteractionEnabled = false hud.label.text = message // 隐藏时候从父控件中移除 hud.removeFromSuperViewOnHide = true // 需要蒙版效果 // hud.backgroundView.style = .solidColor hud.backgroundView.color = UIColor(white: 0.0, alpha: 0.1) return hud } public class func showLoading(_ message: String?, icon: String) { hide(animated: false) let view: UIView = KeyWindow // 快速显示一个提示信息 let hud = MBProgressHUD.showAdded(to: view, animated: true) // 允许背景可点击 hud.isUserInteractionEnabled = false hud.bezelView.style = .solidColor hud.mode = .customView hud.minSize = CGSize(width: 100, height: 80) let bgView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 80)) let imageView = UIImageView(frame: CGRect(x: 33, y: 13, width: 34, height: 34)) imageView.image = UIImage(named: icon) let titleLabel = UILabel(frame: CGRect(x: 0, y: 55, width: 100, height: 17)) titleLabel.text = message titleLabel.numberOfLines = 1 titleLabel.textAlignment = .center titleLabel.font = RegularFont(11) titleLabel.textColor = UIColor.rgbColorFromHex(0x808080) // // shadowCode // titleLabel.layer.shadowColor = UIColor(white: 1, alpha: 0.1).cgColor //// UIColor(red: 0, green: 0, blue: 0, alpha: 0.08).cgColor // titleLabel.layer.shadowOffset = CGSize(width: 0, height: 0) // titleLabel.layer.shadowOpacity = 1 // titleLabel.layer.shadowRadius = 6 // fill bgView.backgroundColor = UIColor.white bgView.layer.cornerRadius = 10 bgView.layer.masksToBounds = true hud.bezelView.addSubview(bgView) bgView.addSubview(imageView) bgView.addSubview(titleLabel) // hud.bezelView.layer.shadowColor = UIColor.rgbaColorFromHex(0x050000, alpha: 0.1).cgColor // UIColor(white: 0, alpha: 0.1).cgColor // UIColor(red: 0, green: 0, blue: 0, alpha: 0.08).cgColor /* hud.bezelView.layer.shadowOffset = CGSize(width: 0, height: 0) hud.bezelView.layer.shadowOpacity = 1 hud.bezelView.layer.shadowRadius = 4 */ // hud.bezelView.layer.borderWidth = 0 // hud.isSquare = true // 隐藏时候从父控件中移除 hud.removeFromSuperViewOnHide = true hud.backgroundView.color = UIColor.black.withAlphaComponent(0.1) // hud.hide(animated: true, afterDelay: delay!) } class func hide(animated: Bool = true) { let view: UIView = KeyWindow self.hide(for: view, animated: true) } }