TSChangeLanguageVC.swift 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. //
  2. // TSChangeLanguageVC.swift
  3. // TSLiveWallpaper
  4. //
  5. // Created by 100Years on 2025/7/10.
  6. //
  7. class TSChangeLanguageVC: TSBaseVC {
  8. lazy var simpleTableView: TSBaseTableView = {
  9. let simpleTableView = TSBaseTableView()
  10. simpleTableView.register(TSChangeLanguageCell.self, forCellReuseIdentifier: "TSChangeLanguageCell")
  11. simpleTableView.delegate = self
  12. simpleTableView.dataSource = self
  13. return simpleTableView
  14. }()
  15. var selectedIndex:Int = 0
  16. lazy var dataArray:[LanguageManager.AppLanguage] = LanguageManager.AppLanguage.allCases
  17. override func createData() {
  18. if LanguageManager.shared.followSystem {
  19. selectedIndex = 0
  20. }else{
  21. let currentLanguage = LanguageManager.shared.currentLanguage
  22. for (i,language) in dataArray.enumerated() {
  23. if language == currentLanguage {
  24. selectedIndex = i
  25. break
  26. }
  27. }
  28. }
  29. }
  30. override func createView() {
  31. setPageTitle("Change Language".localized)
  32. // _ = setNavigationItem("Save".localized, imageName: "", direction: .right, action: #selector(clickSave))
  33. contentView.addSubview(simpleTableView)
  34. simpleTableView.snp.makeConstraints { make in
  35. make.leading.equalTo(16)
  36. make.trailing.equalTo(-16)
  37. make.top.equalTo(16)
  38. make.bottom.equalTo(0)
  39. }
  40. }
  41. @objc func clickSave() {
  42. LanguageManager.shared.currentLanguage = dataArray.safeObj(At: selectedIndex) ?? .en
  43. TSRTLManage.setUpInit()
  44. AppDelegate.shared?.goToTab()
  45. }
  46. }
  47. extension TSChangeLanguageVC : UITableViewDataSource, UITableViewDelegate {
  48. public func numberOfSections(in tableView: UITableView) -> Int {
  49. return 1
  50. }
  51. public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  52. return dataArray.count
  53. }
  54. public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  55. return 64
  56. }
  57. public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  58. if let cell = tableView.dequeueReusableCell(withIdentifier: "TSChangeLanguageCell") as? TSChangeLanguageCell{
  59. if let language = dataArray.safeObj(At: indexPath.row){
  60. if let image = UIImage(named: language.flag) {
  61. cell.leftImageView.image = UIImage(named: language.flag)
  62. }else{
  63. cell.leftLab.text = language.flag
  64. }
  65. cell.textLab.text = language.displayName
  66. cell.rightImageView.image = selectedIndex == indexPath.row ? .check : .unCheck
  67. }
  68. return cell
  69. }
  70. return UITableViewCell()
  71. }
  72. public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  73. selectedIndex = indexPath.row
  74. simpleTableView.reloadData()
  75. clickSave()
  76. }
  77. }
  78. class TSChangeLanguageCell: UITableViewCell {
  79. open lazy var bgContentView:UIView = {
  80. let view = UIView()
  81. view.backgroundColor = .white.withAlphaComponent(0.1)
  82. return view
  83. }()
  84. public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  85. super.init(style: style, reuseIdentifier: reuseIdentifier)
  86. self.selectionStyle = .none
  87. self.backgroundColor = .clear
  88. self.addSubview(bgContentView)
  89. bgContentView.snp.makeConstraints { make in
  90. make.top.leading.trailing.bottom.equalTo(0)
  91. }
  92. creatUI()
  93. }
  94. required public init?(coder: NSCoder) {
  95. fatalError("init(coder:) has not been implemented")
  96. }
  97. lazy var leftImageView: UIImageView = {
  98. let leftImageView = UIImageView.createImageView()
  99. return leftImageView
  100. }()
  101. lazy var leftLab: UILabel = {
  102. return UILabel.createLabel(font: .font(size: 16),textColor: .white,textAlignment: .center)
  103. }()
  104. lazy var textLab: UILabel = {
  105. return UILabel.createLabel(font: .font(size: 16),textColor: .white)
  106. }()
  107. lazy var rightImageView: UIImageView = {
  108. return UIImageView.createImageView()
  109. }()
  110. func creatUI() {
  111. bgContentView.addSubview(leftLab)
  112. bgContentView.addSubview(leftImageView)
  113. bgContentView.addSubview(textLab)
  114. bgContentView.addSubview(rightImageView)
  115. leftImageView.snp.makeConstraints { make in
  116. make.leading.equalTo(16)
  117. make.centerY.equalToSuperview()
  118. make.width.height.equalTo(20)
  119. }
  120. leftLab.snp.makeConstraints { make in
  121. make.leading.equalTo(16)
  122. make.centerY.equalToSuperview()
  123. make.width.height.equalTo(20)
  124. }
  125. textLab.snp.makeConstraints { make in
  126. make.leading.equalTo(leftImageView.snp.trailing).offset(12)
  127. make.centerY.equalToSuperview()
  128. }
  129. rightImageView.snp.makeConstraints { make in
  130. make.trailing.equalTo(-16)
  131. make.centerY.equalToSuperview()
  132. make.width.height.equalTo(16)
  133. }
  134. }
  135. }