TSPTPUploadCell.swift 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. //
  2. // TSPTPUploadCell.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/2/25.
  6. //
  7. class TSPTPUploadCell : TSBaseCollectionCell{
  8. var upLoadImage:UIImage? = nil {
  9. didSet{
  10. if let image = upLoadImage {
  11. upLoadView.isHidden = true
  12. uploadExampleImageView.isHidden = true
  13. uploadImageView.isHidden = false
  14. deleteBtn.isHidden = false
  15. uploadImageView.image = image
  16. }else {
  17. upLoadView.isHidden = false
  18. uploadExampleImageView.isHidden = false
  19. uploadImageView.isHidden = true
  20. deleteBtn.isHidden = true
  21. uploadImageView.image = nil
  22. }
  23. }
  24. }
  25. lazy var upLoadView: UIView = {
  26. let bgView = UIView()
  27. let addImageView = UIImageView.createImageView(imageName: "add")
  28. bgView.addSubview(addImageView)
  29. addImageView.snp.makeConstraints { make in
  30. make.top.equalTo(0)
  31. make.centerX.equalToSuperview()
  32. make.width.height.equalTo(24)
  33. }
  34. let textLabel = UILabel.createLabel(text: "Upload Image".localized,font: .font(size: 16),textColor: .white)
  35. bgView.addSubview(textLabel)
  36. textLabel.snp.makeConstraints { make in
  37. make.top.equalTo(addImageView.snp.bottom).offset(16)
  38. make.centerX.equalToSuperview()
  39. make.bottom.equalToSuperview()
  40. }
  41. return bgView
  42. }()
  43. lazy var uploadExampleImageView: UIImageView = {
  44. let uploadExampleImageView = UIImageView()
  45. uploadExampleImageView.image = UIImage(named: "ptp_upload_example")
  46. uploadExampleImageView.contentMode = .scaleAspectFill
  47. uploadExampleImageView.cornerRadius = 12
  48. uploadExampleImageView.isHidden = false
  49. let button = UIButton.createButton(title:"Tap to select photo".localized,backgroundColor:.black.withAlphaComponent(0.4),font: .font(size: 14),titleColor: .white,corner: 12)
  50. button.contentEdgeInsets = UIEdgeInsets(top: 0, left: 12, bottom: 0, right: 12)
  51. uploadExampleImageView.addSubview(button)
  52. button.snp.makeConstraints { make in
  53. make.centerX.equalToSuperview()
  54. make.bottom.equalTo(-20)
  55. make.height.equalTo(24)
  56. }
  57. return uploadExampleImageView
  58. }()
  59. lazy var uploadImageView: UIImageView = {
  60. let uploadImageView = UIImageView()
  61. uploadImageView.contentMode = .scaleAspectFit
  62. uploadImageView.cornerRadius = 12
  63. upLoadView.isHidden = true
  64. return uploadImageView
  65. }()
  66. lazy var bgView: UIView = {
  67. let bgView = UIView()
  68. bgView.addGestureRecognizer(UITapGestureRecognizer(target: self, action:#selector(clickBgView)))
  69. let bgImageView = UIImageView.createImageView(imageName: "ptp_upload_bg")
  70. bgImageView.contentMode = .scaleToFill
  71. bgView.addSubview(bgImageView)
  72. bgImageView.snp.makeConstraints { make in
  73. make.leading.bottom.trailing.top.equalTo(0)
  74. }
  75. bgView.addSubview(upLoadView)
  76. upLoadView.snp.makeConstraints { make in
  77. make.top.equalTo(88)
  78. make.centerX.equalToSuperview()
  79. }
  80. bgView.addSubview(uploadExampleImageView)
  81. uploadExampleImageView.snp.makeConstraints { make in
  82. make.top.leading.equalTo(8)
  83. make.bottom.trailing.equalTo(-8)
  84. }
  85. bgView.addSubview(uploadImageView)
  86. uploadImageView.snp.makeConstraints { make in
  87. make.top.leading.equalTo(8)
  88. make.bottom.trailing.equalTo(-8)
  89. }
  90. return bgView
  91. }()
  92. lazy var deleteBtn: UIButton = {
  93. let deleteBtn = UIButton.createButton(backgroundImage: UIImage(named: "delete_redRound")) { [weak self] in
  94. guard let self = self else { return }
  95. upLoadImage = nil
  96. actionHandler(any: "delete")
  97. }
  98. deleteBtn.isHidden = true
  99. return deleteBtn
  100. }()
  101. override func creatUI() {
  102. contentView.addSubview(bgView)
  103. // bgView.snp.makeConstraints { make in
  104. // make.leading.top.equalTo(16)
  105. // make.bottom.trailing.equalTo(-16)
  106. // }
  107. bgView.snp.makeConstraints { make in
  108. make.leading.equalTo(16)
  109. make.trailing.equalTo(-16)
  110. make.top.bottom.equalTo(0)
  111. }
  112. contentView.addSubview(deleteBtn)
  113. deleteBtn.snp.makeConstraints { make in
  114. make.top.equalTo(4)
  115. make.trailing.equalTo(-4)
  116. make.width.height.equalTo(32)
  117. }
  118. }
  119. @objc func clickBgView() {
  120. actionHandler(any: "add")
  121. }
  122. override func renderView(with object: Any?, component: TSCollectionViewComponent, attributes: [String : Any]?) {
  123. super.renderView(with: object, component: component, attributes: attributes)
  124. if let itemModel = object as? TSGenmojiCoLItemModel{
  125. if let model = itemModel.ptpStyleModels.first {
  126. upLoadImage = model.image
  127. }
  128. }
  129. }
  130. }