LNNoMoreDataView.swift 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // LNNoMoreDataView.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/12/29.
  6. //
  7. import Foundation
  8. import UIKit
  9. import SnapKit
  10. class LNNoMoreDataView: UIView {
  11. private let stackView = UIStackView()
  12. let imageView = UIImageView()
  13. let tipsLabel = UILabel()
  14. override init(frame: CGRect) {
  15. super.init(frame: frame)
  16. setupViews()
  17. }
  18. func showNetworkError() {
  19. imageView.image = .icNoDataNetworkError
  20. tipsLabel.text = .init(key: "A00004")
  21. isHidden = false
  22. }
  23. func showNoData(icon: UIImage = .icNoDataEmpty,
  24. tips: String = .init(key: "A00005")) {
  25. imageView.image = icon
  26. tipsLabel.text = tips
  27. isHidden = false
  28. }
  29. func addActionView(_ view: UIView) {
  30. stackView.addArrangedSubview(view)
  31. }
  32. func hide() {
  33. isHidden = true
  34. }
  35. required init?(coder: NSCoder) {
  36. fatalError("init(coder:) has not been implemented")
  37. }
  38. }
  39. extension LNNoMoreDataView {
  40. private func setupViews() {
  41. isHidden = true
  42. snp.makeConstraints { make in
  43. make.width.lessThanOrEqualTo(260)
  44. }
  45. stackView.axis = .vertical
  46. stackView.spacing = 24
  47. stackView.alignment = .center
  48. addSubview(stackView)
  49. stackView.snp.makeConstraints { make in
  50. make.edges.equalToSuperview()
  51. }
  52. let emptyView = UIView()
  53. stackView.addArrangedSubview(emptyView)
  54. emptyView.addSubview(imageView)
  55. imageView.snp.makeConstraints { make in
  56. make.centerX.equalToSuperview()
  57. make.top.equalToSuperview()
  58. make.width.height.equalTo(0).priority(.low)
  59. }
  60. tipsLabel.font = .body_s
  61. tipsLabel.textColor = .text_2
  62. tipsLabel.numberOfLines = 0
  63. tipsLabel.textAlignment = .center
  64. emptyView.addSubview(tipsLabel)
  65. tipsLabel.snp.makeConstraints { make in
  66. make.horizontalEdges.equalToSuperview()
  67. make.top.equalTo(imageView.snp.bottom).offset(14)
  68. make.bottom.equalToSuperview()
  69. }
  70. }
  71. }