TSViewTool.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. //
  2. // TSViewTool.swift
  3. // TSLiveWallpaper
  4. //
  5. // Created by 100Years on 2024/12/20.
  6. //
  7. class TSViewTool: UIView {
  8. }
  9. func createBlurEffectView(style:UIBlurEffect.Style,backgroundColor:UIColor? = nil) -> UIVisualEffectView {
  10. let blurEffect = UIBlurEffect(style: style)
  11. let blurEffectView = UIVisualEffectView(effect: blurEffect)
  12. blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
  13. if backgroundColor != nil {
  14. blurEffectView.backgroundColor = backgroundColor
  15. }
  16. return blurEffectView
  17. }
  18. //常用提交按钮
  19. func kCreateNormalSubmitBtn(title:String, action: (() -> Void)? = nil) -> UIButton {
  20. let btn = UIButton.createButton(title:title,font: UIFont.font(size: 16,weight: .medium),titleColor:.black,corner: 30,action: action)
  21. var buttonBgImage = UIImage(named: "submit_btn_bg")!
  22. buttonBgImage = buttonBgImage.resizableImage(withCapInsets: UIEdgeInsets(top:24, left: 24, bottom: 24, right: 24), resizingMode: .stretch)
  23. btn.setBackgroundImage(buttonBgImage, for: .normal)
  24. var buttonDisBgImage = UIImage(named: "submit_btn_dis_bg")!
  25. buttonDisBgImage = buttonDisBgImage.resizableImage(withCapInsets: UIEdgeInsets(top:24, left: 24, bottom: 24, right: 24), resizingMode: .stretch)
  26. btn.setBackgroundImage(buttonDisBgImage, for: .disabled)
  27. btn.contentEdgeInsets = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 0)
  28. btn.imageEdgeInsets = UIEdgeInsets(top: 0, left: -8, bottom: 0, right: 0)
  29. return btn
  30. }
  31. let kSubmitBtnbg = UIImage(named: "submit_btn_bg")
  32. let kSubmitBtnSmallBg = UIImage(named: "submit_btn_small_bg")
  33. let kSubmitBtnNormalbg = UIImage(named: "submit_btn_normal_bg")
  34. //常用取消按钮
  35. func kCreateNormalCancelBtn(title:String, action: (() -> Void)? = nil) -> UIButton {
  36. let btn = UIButton.createButton(title:title,backgroundColor: .fromHex("#FFFFFF", alpha: 0.4),font: UIFont.font(size: 14,weight: .medium),titleColor:.white,corner: 30,action: action)
  37. return btn
  38. }
  39. //常用确定按钮
  40. func kCreateNormalConfirmBtn(title:String, action: (() -> Void)? = nil) -> UIButton {
  41. let btn = UIButton.createButton(title:title,backgroundImage:UIImage(named: "submit_btn_small_bg"),font: UIFont.font(size: 14,weight: .medium),titleColor:.white,corner: 30,action: action)
  42. return btn
  43. }
  44. //给按钮设置 vip 图标
  45. func kSetBtnVipIcon(btn:UIButton,show:Bool){
  46. btn.setImage(show ? UIImage(named:"btnImage_vip") : nil, for: .normal)
  47. }
  48. let kPlaceholderImage = UIImage(named: "placeholderImage")
  49. let kSavePhotoSuccesswShared = TSSavePhotoSuccessTool.shared
  50. class TSSavePhotoSuccessTool {
  51. static let shared = TSSavePhotoSuccessTool()
  52. private lazy var textLabel:UILabel = {
  53. let textLabel = UILabel()
  54. textLabel.textColor = UIColor.white
  55. textLabel.text = "Save Successfully".localized
  56. textLabel.font = UIFont.font(size: 14)
  57. return textLabel
  58. }()
  59. private lazy var saveSuccessBg: UIView = {
  60. return creatSaveSuccessBg()
  61. }()
  62. private lazy var viewButton:UIView = {
  63. let color = "4FEA9D".uiColor
  64. let viewButton = UIButton.createButton(title: "View".localized ,backgroundColor: color.withAlphaComponent(0.1),font: UIFont.font(size: 14),titleColor: color,corner: 14) {
  65. if let url = URL(string: "photos-redirect://") {
  66. if UIApplication.shared.canOpenURL(url) {
  67. UIApplication.shared.open(url, options: [:], completionHandler: nil)
  68. playVibration()
  69. }
  70. }
  71. }
  72. return viewButton
  73. }()
  74. func creatSaveSuccessBg() -> UIView {
  75. let view = UIView()
  76. view.frame = CGRect(x: 0, y: 0, width: 288, height: 48)
  77. // 阴影
  78. view.backgroundColor = .clear
  79. view.layer.shadowColor = UIColor.black.cgColor
  80. view.layer.shadowOffset = CGSize(width: 0, height: 2)
  81. view.layer.shadowOpacity = 0.1
  82. // 圆角
  83. let colorBg = UIView()
  84. colorBg.backgroundColor = "#333333".uiColor
  85. colorBg.layer.cornerRadius = 8
  86. colorBg.layer.masksToBounds = true
  87. colorBg.clipsToBounds = true
  88. view.addSubview(colorBg)
  89. colorBg.snp.makeConstraints { make in
  90. make.leading.trailing.top.bottom.equalTo(0)
  91. }
  92. let image = UIImage(named: "success_icon")
  93. let iconView = UIImageView(image: image)
  94. view.addSubview(iconView)
  95. iconView.snp.makeConstraints { make in
  96. make.width.height.equalTo(24)
  97. make.centerY.equalToSuperview()
  98. make.leading.equalTo(12)
  99. }
  100. view.addSubview(viewButton)
  101. view.addSubview(textLabel)
  102. viewButton.snp.makeConstraints { make in
  103. make.width.equalTo(65)
  104. make.height.equalTo(28)
  105. make.trailing.equalTo(-8)
  106. make.centerY.equalToSuperview()
  107. }
  108. textLabel.snp.makeConstraints { make in
  109. make.leading.equalTo(iconView.snp.trailing).offset(8)
  110. make.trailing.equalTo(viewButton.snp.leading).offset(-4)
  111. make.centerY.equalToSuperview()
  112. }
  113. return view
  114. }
  115. func show(atView:UIView,text:String = "Save Successfully".localized,showViewBtn:Bool = true) {
  116. kExecuteOnMainThread {
  117. self.textLabel.text = text
  118. self.viewButton.isHidden = !showViewBtn
  119. atView.addSubview(self.saveSuccessBg)
  120. self.saveSuccessBg.snp.remakeConstraints { make in
  121. make.width.equalTo(288)
  122. make.height.equalTo(48)
  123. make.centerX.equalToSuperview()
  124. make.bottom.equalTo(-112)
  125. }
  126. }
  127. DispatchQueue.main.asyncAfter(deadline: .now()+2.0) {
  128. self.saveSuccessBg.removeFromSuperview()
  129. }
  130. }
  131. }