UIVisualEffectView+Extension.swift 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //
  2. // UIVisualEffectView+Extension.swift
  3. // QuickSearchLocation
  4. //
  5. // Created by mac on 2024/4/10.
  6. //
  7. import Foundation
  8. import UIKit
  9. // MARK: - 一、基本的扩展
  10. public extension UIVisualEffectView {
  11. // MARK: 1.1、创建一个UIVisualEffectView对象
  12. /// 创建一个UIVisualEffectView对象
  13. /// - Parameters:
  14. /// - size: UIVisualEffectView的size
  15. /// - alpha: 模糊透明度
  16. /// - style: 模糊样式
  17. /// - isAddVibrancy: 是否添加UIVibrancyEffect
  18. /// - Returns: 返回UIVisualEffectView
  19. static func visualEffectView(size: CGSize, alpha: CGFloat = 1.0, style: UIBlurEffect.Style = .light, isAddVibrancy: Bool = true) -> UIVisualEffectView {
  20. // 首先创建一个模糊效果
  21. let blurEffect = UIBlurEffect(style: style)
  22. // 接着创建一个承载模糊效果的视图
  23. let blurView = UIVisualEffectView(effect: blurEffect)
  24. // 毛玻璃的透明度
  25. blurView.alpha = alpha
  26. // 设置模糊视图的大小(全屏)
  27. blurView.frame.size = size
  28. // 创建并添加vibrancy视图
  29. if isAddVibrancy {
  30. /*
  31. UIVibrancyEffect 主要用于放大和调整UIVisualEffectView 视图下面的内容的颜色,同时让UIVisualEffectView的 contentView中的内容看起来更加生动。通常UIVibrancyEffect 对象是与UIBlurEffect一起使用
  32. */
  33. let vibrancyView = UIVisualEffectView(effect: UIVibrancyEffect(blurEffect: blurEffect))
  34. vibrancyView.frame.size = size
  35. blurView.contentView.addSubview(vibrancyView)
  36. }
  37. return blurView
  38. }
  39. }