TSChatMsgToolView.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. //
  2. // TSChatMsgToolView.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/2/23.
  6. //
  7. //30
  8. class TSChatMsgToolView: TSChatMsgBaseView {
  9. var viewHeight = TSLayoutSizeCalculator.cellMessageToolViewH
  10. //是否显示失败
  11. var isShowRefresh:Bool = false {
  12. didSet{
  13. updateRefreshBtn()
  14. }
  15. }
  16. //是否只显示失败
  17. var isOnlyShowRefresh:Bool = false {
  18. didSet{
  19. updateNotRefreshBtn()
  20. }
  21. }
  22. lazy var copyBtn: UIButton = {
  23. let copyBtn = UIButton.createButton(image: UIImage(named: "aichat_copy")) { [weak self] in
  24. guard let self = self else { return }
  25. didTapCustomViewBlock?(.copyMsg)
  26. }
  27. return copyBtn
  28. }()
  29. lazy var refreshBtn: UIButton = {
  30. let refreshBtn = UIButton.createButton(image: UIImage(named: "refresh_gary")) { [weak self] in
  31. guard let self = self else { return }
  32. didTapCustomViewBlock?(.refreshMsg)
  33. }
  34. return refreshBtn
  35. }()
  36. lazy var stackView: TSCustomStackView = {
  37. let stackView = TSCustomStackView(axis: .horizontal,spacing: 16)
  38. return stackView
  39. }()
  40. override func creatUI() {
  41. self.clipsToBounds = true
  42. contentView.addSubview(stackView)
  43. stackView.snp.makeConstraints { make in
  44. make.leading.equalTo(12)
  45. make.top.equalTo(0)
  46. make.height.equalTo(20)
  47. }
  48. // stackView.addSubviewToStack(copyBtn)
  49. // copyBtn.snp.makeConstraints { make in
  50. // make.width.equalTo(20)
  51. // }
  52. }
  53. func updateRefreshBtn() {
  54. if isShowRefresh {
  55. stackView.insertViewToStack(refreshBtn, at: 0)
  56. refreshBtn.snp.makeConstraints { make in
  57. make.width.equalTo(20)
  58. }
  59. }else{
  60. stackView.removeViewToStack(refreshBtn)
  61. }
  62. }
  63. func updateNotRefreshBtn(){
  64. if isOnlyShowRefresh {
  65. stackView.removeViewToStack(copyBtn)
  66. }else{
  67. if copyBtn.superview == nil {
  68. stackView.addSubviewToStack(copyBtn)
  69. copyBtn.snp.makeConstraints { make in
  70. make.width.equalTo(20)
  71. }
  72. }
  73. }
  74. }
  75. // func setHidden(isHidden:Bool) {
  76. // self.isHidden = isHidden
  77. // let h = isHidden ? 0 : viewHeight
  78. //
  79. // successView.snp.updateConstraints { make in
  80. // make.height.equalTo(h)
  81. // }
  82. //
  83. // failView.snp.updateConstraints { make in
  84. // make.height.equalTo(h)
  85. // }
  86. // }
  87. }
  88. //class TSChatMsgToolView: TSChatMsgBaseView {
  89. // var viewHeight = TSLayoutSizeCalculator.cellMessageToolViewH
  90. //
  91. // var isSuccess:Bool = true {
  92. // didSet{
  93. // if isSuccess {
  94. // successView.isHidden = false
  95. // failView.isHidden = true
  96. // }else {
  97. // successView.isHidden = true
  98. // failView.isHidden = false
  99. // }
  100. // }
  101. // }
  102. //
  103. // lazy var copyBtn: UIButton = {
  104. // let copyBtn = UIButton.createButton(image: UIImage(named: "aichat_copy")) { [weak self] in
  105. // guard let self = self else { return }
  106. // didTapCustomViewBlock?(.copyMsg)
  107. // }
  108. // return copyBtn
  109. // }()
  110. // lazy var successView: UIView = {
  111. // let successView = UIView()
  112. //
  113. // let copyBtn = UIButton.createButton(image: UIImage(named: "aichat_copy")) { [weak self] in
  114. // guard let self = self else { return }
  115. // didTapCustomViewBlock?(.copyMsg)
  116. // }
  117. //
  118. // successView.addSubview(copyBtn)
  119. // copyBtn.snp.makeConstraints { make in
  120. // make.leading.equalTo(12)
  121. // make.top.equalToSuperview()
  122. // make.width.height.equalTo(20)
  123. // }
  124. //
  125. // return successView
  126. // }()
  127. //
  128. // lazy var failView: UIView = {
  129. // let failView = UIView()
  130. //
  131. // let refreshBtn = UIButton.createButton(image: UIImage(named: "refresh")) { [weak self] in
  132. // guard let self = self else { return }
  133. // didTapCustomViewBlock?(.refreshMsg)
  134. // }
  135. //
  136. // failView.addSubview(refreshBtn)
  137. // refreshBtn.snp.makeConstraints { make in
  138. // make.leading.equalTo(12)
  139. // make.top.equalToSuperview()
  140. // make.width.height.equalTo(20)
  141. // }
  142. //
  143. // return failView
  144. // }()
  145. //
  146. //
  147. // override func creatUI() {
  148. //
  149. // self.clipsToBounds = true
  150. //// contentView.backgroundColor = .green
  151. // contentView.addSubview(successView)
  152. // successView.snp.makeConstraints { make in
  153. // make.leading.equalTo(0)
  154. // make.trailing.equalTo(0)
  155. // make.top.bottom.equalToSuperview()
  156. // make.height.equalTo(viewHeight)
  157. // }
  158. //
  159. // contentView.addSubview(failView)
  160. // failView.snp.makeConstraints { make in
  161. // make.leading.equalTo(0)
  162. // make.trailing.equalTo(0)
  163. // make.top.bottom.equalToSuperview()
  164. // make.height.equalTo(viewHeight)
  165. // }
  166. //
  167. //// setUpSuccess()
  168. // }
  169. //
  170. //// func setUpSuccess(){
  171. //// successView.addSubview(copyBtn)
  172. //// copyBtn.snp.makeConstraints { make in
  173. //// make.leading.equalTo(12)
  174. //// make.top.equalToSuperview()
  175. //// make.width.height.equalTo(20)
  176. //// }
  177. //// }
  178. //
  179. // func setHidden(isHidden:Bool) {
  180. // self.isHidden = isHidden
  181. // let h = isHidden ? 0 : viewHeight
  182. //
  183. // successView.snp.updateConstraints { make in
  184. // make.height.equalTo(h)
  185. // }
  186. //
  187. // failView.snp.updateConstraints { make in
  188. // make.height.equalTo(h)
  189. // }
  190. // }
  191. //}