TSDiyVideoPromptElementView.swift 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // TSDiyVideoPromptElementView.swift
  3. // AIEmoji
  4. //
  5. // Created by nkl on 2025/7/29.
  6. //
  7. import Foundation
  8. class TSDiyTextPromptElementView: TSPromptTextView, TSDiyVideoElement {
  9. var type: TSDiyVideoElementType {
  10. .textPrompt
  11. }
  12. var param: String {
  13. ""
  14. }
  15. override init(randomTextArray: [String], textChangedBlock: @escaping (String) -> Void) {
  16. super.init(randomTextArray: randomTextArray, textChangedBlock: textChangedBlock)
  17. }
  18. override func makeConstraints() {
  19. super.makeConstraints()
  20. }
  21. @MainActor required init?(coder: NSCoder) {
  22. fatalError("init(coder:) has not been implemented")
  23. }
  24. }
  25. class TSDiyVideoPromptElementView: TSPromptTextView, TSDiyVideoElement {
  26. var dependElement: (any TSDiyVideoElement)?
  27. var type: TSDiyVideoElementType {
  28. .imagePrompt
  29. }
  30. var param: String { "" }
  31. var uploadClickAction: (() -> Void)?
  32. var deleteClickAction: (() -> Void)?
  33. lazy var uploadView: TSDiyVideoUploadImageView = {
  34. let upload = TSDiyVideoUploadImageView()
  35. upload.clickBgViewBlock = { [weak self] in
  36. guard let self = self else { return }
  37. uploadClickAction?()
  38. }
  39. upload.clickDeleteBlock = { [weak self] in
  40. guard let self = self else { return }
  41. deleteClickAction?()
  42. }
  43. return upload
  44. }()
  45. lazy var titleLabel: UILabel = {
  46. let title : UILabel = .createLabel()
  47. title.text = type.sectionTitle
  48. title.textColor = .white.withAlphaComponent(0.8)
  49. title.font = .font(size: 14,weight: .medium)
  50. return title
  51. }()
  52. override init(randomTextArray: [String], textChangedBlock: @escaping (String) -> Void) {
  53. super.init(randomTextArray: randomTextArray, textChangedBlock: textChangedBlock)
  54. self.inspirationBtn.isHidden = true
  55. }
  56. override func creatUI() {
  57. addChildren()
  58. super.creatUI()
  59. }
  60. @objc func pickSinglePhoto() {
  61. }
  62. required init?(coder: NSCoder) {
  63. fatalError("init(coder:) has not been implemented")
  64. }
  65. func addChildren() {
  66. contentView.addSubview(titleLabel)
  67. textBgView.addSubview(uploadView)
  68. }
  69. override func makeConstraints() {
  70. titleLabel.snp.makeConstraints { make in
  71. make.leading.equalToSuperview().offset(16)
  72. make.top.equalToSuperview().offset(22)
  73. }
  74. textBgView.snp.makeConstraints { make in
  75. make.top.equalTo(titleLabel.snp.bottom).offset(12)
  76. make.horizontalEdges.equalToSuperview().inset(16)
  77. make.bottom.equalToSuperview()
  78. }
  79. let itemWidth = k_ScreenWidth - 56
  80. let itemHeight = itemWidth * (230.0 / 320.0)
  81. uploadView.snp.makeConstraints { make in
  82. make.horizontalEdges.equalToSuperview()
  83. make.top.equalToSuperview().offset(12)
  84. make.height.equalTo(itemHeight)
  85. }
  86. customTextView.snp.makeConstraints { make in
  87. make.top.equalTo(uploadView.snp.bottom).offset(12)
  88. make.horizontalEdges.equalToSuperview().inset(16)
  89. make.bottom.equalTo(-52)
  90. make.height.equalTo(100)
  91. }
  92. // inspirationBtn.snp.makeConstraints { make in
  93. // make.height.equalTo(28)
  94. // make.leading.equalTo(16)
  95. // make.top.equalTo(customTextView.snp.bottom).offset(12)
  96. // make.bottom.equalTo(textBgView.snp.bottom).offset(-12)
  97. // }
  98. AIView.snp.remakeConstraints { make in
  99. make.height.equalTo(28)
  100. make.bottom.equalTo(-16)
  101. make.leading.equalToSuperview().offset(16)
  102. }
  103. clearBtn.snp.makeConstraints { make in
  104. make.width.height.equalTo(16)
  105. make.centerY.equalTo(inspirationBtn)
  106. make.trailing.equalTo(-16)
  107. }
  108. }
  109. }