TSGeneratorErrorView.swift 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. //
  2. // TSGeneratorView.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/5/12.
  6. //
  7. class TSGeneratorErrorView: TSBaseView {
  8. var style:TSGeneratorView.Style = .generalError{
  9. didSet{
  10. debugPrint("TSGeneratorErrorView style = \(style)")
  11. switch style {
  12. case .sensitiveError:
  13. sensitiveErrorView()
  14. case .netWorkError:
  15. netWorkErrorView()
  16. case .generateTooMuch:
  17. generateTooMuchView()
  18. default:
  19. generalErrorView()
  20. }
  21. }
  22. }
  23. var isUploadImage:Bool = true
  24. lazy var cusStackView: UIStackView = {
  25. let cusStackView = UIStackView()
  26. cusStackView.axis = .vertical
  27. cusStackView.distribution = .fill
  28. cusStackView.alignment = .center
  29. return cusStackView
  30. }()
  31. lazy var errorImageView: UIImageView = {
  32. let errorImageView = UIImageView.createImageView(imageName: "yellow_warning")
  33. return errorImageView
  34. }()
  35. lazy var textLabel: UILabel = {
  36. let textLabel = UILabel.createLabel(font: .font(size: 14),textColor: .white,textAlignment: .center,numberOfLines: 0)
  37. return textLabel
  38. }()
  39. lazy var submitBtn: UIButton = {
  40. let btn = UIButton.createButton(title: "Generate in the background".localized,backgroundImage: kSubmitBtnNormalbg,font: .font(size: 16),titleColor: "#111111".uiColor,corner: 24)
  41. btn.titleLabel?.adjustsFontSizeToFitWidth = true
  42. return btn
  43. }()
  44. override func creatUI() {
  45. contentView.addSubview(cusStackView)
  46. cusStackView.snp.makeConstraints { make in
  47. make.edges.equalToSuperview()
  48. }
  49. cusStackView.addArrangedSubview(errorImageView)
  50. errorImageView.snp.makeConstraints { make in
  51. make.top.equalTo(0)
  52. make.width.height.equalTo(56)
  53. }
  54. cusStackView.addSpacing(length: 12.0)
  55. cusStackView.addArrangedSubview(textLabel)
  56. textLabel.snp.makeConstraints { make in
  57. make.leading.equalTo(24)
  58. make.trailing.equalTo(-24)
  59. }
  60. cusStackView.addSpacing(length: 28.0)
  61. cusStackView.addArrangedSubview(submitBtn)
  62. submitBtn.snp.makeConstraints { make in
  63. make.width.equalTo(250)
  64. make.height.equalTo(48)
  65. make.bottom.equalTo(0)
  66. }
  67. }
  68. }
  69. extension TSGeneratorErrorView {
  70. // func setErrorText(errorString:String) {
  71. // textLabel.text = errorString
  72. // }
  73. func sensitiveErrorView() {
  74. submitBtn.setTitle(isUploadImage ? "Reselect photos".localized : "Got it".localized, for: .normal)
  75. errorImageView.image = UIImage(named: "yellow_warning")
  76. errorImageView.snp.updateConstraints { make in
  77. make.width.height.equalTo(56)
  78. }
  79. textLabel.text = "Your photo may contain nudity, gore or violence that does not comply with the health policy, please replace the photo and try again.".localized
  80. }
  81. func generalErrorView() {
  82. submitBtn.setTitle("Got it".localized, for: .normal)
  83. errorImageView.image = UIImage(named: "failed_big")
  84. errorImageView.snp.updateConstraints { make in
  85. make.width.height.equalTo(120)
  86. }
  87. textLabel.text = "Sorry there was a slight problem with the image processing, please try again later.".localized
  88. }
  89. func netWorkErrorView() {
  90. submitBtn.setTitle("Try Again".localized, for: .normal)
  91. errorImageView.image = UIImage(named: "network_error")
  92. errorImageView.snp.updateConstraints { make in
  93. make.width.height.equalTo(120)
  94. }
  95. textLabel.text = "No network, please check your network and try again.".localized
  96. }
  97. func generateTooMuchView() {
  98. submitBtn.setTitle("Got it".localized, for: .normal)
  99. errorImageView.image = UIImage(named: "yellow_warning")
  100. errorImageView.snp.updateConstraints { make in
  101. make.width.height.equalTo(56)
  102. }
  103. textLabel.text = "Your photo may contain nudity, gore or violence that does not comply with the health policy, please replace the photo and try again.".localized
  104. }
  105. }