TSMineTopView.swift 4.9 KB

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