TSMineTopView.swift 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //
  2. // TSMineTopView.swift
  3. // TSLiveWallpaper
  4. //
  5. // Created by 100Years on 2025/6/12.
  6. //
  7. class TSMineTopView: TSBaseView {
  8. var clickUpgrade:(()->Void)?
  9. lazy var saveView: UIButton = {
  10. let saveView = UIButton.createButton(title: "Save", backgroundColor:"#E83E3E".uiColor, font: .font(name: .ZillaSlab,size: 12), titleColor: .mainText,corner: 4.0)
  11. saveView.contentEdgeInsets = UIEdgeInsets(top: 0, left: 12, bottom: 0, right: 12)
  12. saveView.isUserInteractionEnabled = false
  13. return saveView
  14. }()
  15. lazy var titleLabel: UILabel = {
  16. let titleLabel = UILabel.createLabel(text: "Update to PRO".localized, font: .font(name: .ZillaSlabBoldItalic,size: 24,weight: .bold), textColor: .mainText)
  17. return titleLabel
  18. }()
  19. lazy var timeLabel: UILabel = {
  20. let timeLabel = UILabel.createLabel(text: "Limited Time Discount".localized, font: .font(name: .ZillaSlab,size: 14), textColor: .lesserText)
  21. return timeLabel
  22. }()
  23. lazy var upgradeBtn: UIButton = {
  24. let upgradeBtn = kCreateNormalSubmitBtn(title: "Upgrade".localized,font: .font(size: 18,weight: .medium)){ [weak self] in
  25. guard let self = self else { return }
  26. clickView()
  27. }
  28. upgradeBtn.setTitleImageSpace(spacing: 0)
  29. return upgradeBtn
  30. }()
  31. lazy var noVipView: UIView = {
  32. let contentView = UIView()
  33. let vipBgImageView = UIImageView.createImageView(image: .settingPurchaseBg, contentMode: .scaleToFill)
  34. contentView.addSubview(vipBgImageView)
  35. vipBgImageView.snp.makeConstraints { make in
  36. make.top.equalTo(0)
  37. make.leading.trailing.bottom.equalTo(0)
  38. }
  39. contentView.addSubview(upgradeBtn)
  40. upgradeBtn.snp.makeConstraints { make in
  41. make.leading.equalTo(16)
  42. make.height.equalTo(38)
  43. make.trailing.equalTo(-16)
  44. make.bottom.equalTo(-12)
  45. }
  46. contentView.addSubview(titleLabel)
  47. titleLabel.snp.makeConstraints { make in
  48. make.leading.equalTo(16)
  49. make.top.equalTo(20)
  50. make.height.equalTo(18)
  51. }
  52. contentView.addSubview(timeLabel)
  53. timeLabel.snp.makeConstraints { make in
  54. make.leading.equalTo(16)
  55. // make.top.equalTo(titleLabel.snp.bottom).offset(18)
  56. make.bottom.equalTo(upgradeBtn.snp.top).offset(-14)
  57. }
  58. contentView.addSubview(saveView)
  59. saveView.snp.makeConstraints { make in
  60. make.trailing.equalTo(-13)
  61. make.top.equalTo(20)
  62. make.height.equalTo(28)
  63. }
  64. saveView.setRotation(angle: 15)
  65. return contentView
  66. }()
  67. lazy var vipTitleLabel: UILabel = {
  68. let titleLabel = UILabel.createLabel(text: kAppName + " PRO", font: .font(name: .ZillaSlabBoldItalic,size: 32,weight: .bold), textColor: .mainText)
  69. kMainAsync {
  70. titleLabel.applyGradient(colors: ["#F1D3AB".uiColor,"#E4A858".uiColor])
  71. }
  72. return titleLabel
  73. }()
  74. lazy var vipTimeLabel: UILabel = {
  75. let timeLabel = UILabel.createLabel(text: "Limited Time Discount".localized, font: .font(size: 14), textColor: .lesserText)
  76. return timeLabel
  77. }()
  78. lazy var vipView: UIView = {
  79. let contentView = UIView()
  80. let vipBgImageView = UIImageView.createImageView(image: .settingPurchaseVipBg, contentMode: .scaleToFill)
  81. contentView.addSubview(vipBgImageView)
  82. vipBgImageView.snp.makeConstraints { make in
  83. make.top.equalTo(0)
  84. make.leading.trailing.bottom.equalTo(0)
  85. }
  86. contentView.addSubview(vipTitleLabel)
  87. vipTitleLabel.snp.makeConstraints { make in
  88. make.top.equalTo(28)
  89. make.leading.equalTo(20)
  90. }
  91. contentView.addSubview(vipTimeLabel)
  92. vipTimeLabel.snp.makeConstraints { make in
  93. make.leading.equalTo(20)
  94. make.top.equalTo(vipTitleLabel.snp.bottom).offset(13)
  95. }
  96. // let vipIcon = UIImageView.createImageView(image: .settingPurchaseVip, contentMode: .scaleToFill)
  97. // contentView.addSubview(vipIcon)
  98. // vipIcon.snp.makeConstraints { make in
  99. // make.centerY.equalToSuperview()
  100. // make.trailing.equalTo(18)
  101. // make.width.height.equalTo(196)
  102. // }
  103. contentView.isHidden = true
  104. return contentView
  105. }()
  106. @objc func clickView(){
  107. clickUpgrade?()
  108. }
  109. override func creatUI() {
  110. contentView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(clickView)))
  111. contentView.snp.updateConstraints { make in
  112. make.bottom.equalTo(-16)
  113. }
  114. contentView.addSubview(noVipView)
  115. noVipView.snp.makeConstraints { make in
  116. make.edges.equalToSuperview()
  117. }
  118. contentView.addSubview(vipView)
  119. vipView.snp.makeConstraints { make in
  120. make.edges.equalToSuperview()
  121. }
  122. updateVipView()
  123. }
  124. func updateVipView() {
  125. if PurchaseManager.default.isVip {
  126. self.height = 120 + 16
  127. noVipView.isHidden = true
  128. vipView.isHidden = false
  129. vipTimeLabel.text = "Due Date:".localized + "\(PurchaseManager.default.expiredDateString)"
  130. } else {
  131. self.height = 134 + 16
  132. noVipView.isHidden = false
  133. vipView.isHidden = true
  134. saveView.setTitle("Save-Vip".localized + " " + PurchaseManager.default.vipType.saveString, for: .normal)
  135. }
  136. }
  137. }