UITabBarController+Extension.swift 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // UITabBarController+Extension.swift
  3. // QuickSearchLocation
  4. //
  5. // Created by mac on 2024/4/10.
  6. //
  7. import UIKit
  8. extension UITabBarController {
  9. /// 设置 tabbar 的样式
  10. func addChildViewController(childVc: UIViewController,
  11. title: String,
  12. image: String,
  13. selectedImage: String,
  14. imageInsets: UIEdgeInsets,
  15. titlePosition: UIOffset,
  16. index: Int)
  17. {
  18. self .configureChildViewController(childVc: childVc, title: title, image: image, selectedImage: selectedImage, imageInsets: imageInsets, titlePosition: titlePosition, index: index)
  19. let nav:QSLBaseNavController = QSLBaseNavController.init(rootViewController: childVc)
  20. self.addChild(nav)
  21. }
  22. func configureChildViewController(childVc: UIViewController,
  23. title: String,
  24. image: String,
  25. selectedImage: String,
  26. imageInsets: UIEdgeInsets,
  27. titlePosition: UIOffset,
  28. index: Int) {
  29. childVc.tabBarItem.tag = index
  30. // 同时设置tabbar和navigationBar的文字
  31. childVc.title = title
  32. childVc.tabBarItem.title = title
  33. // 设置子控制器的图片
  34. childVc.tabBarItem.image = UIImage(named: image)
  35. //声明显示图片的原始式样 不要渲染
  36. childVc.tabBarItem.selectedImage = UIImage(named: selectedImage)?.withRenderingMode(.alwaysOriginal)
  37. childVc.tabBarItem.imageInsets = imageInsets
  38. childVc.tabBarItem.titlePositionAdjustment = titlePosition
  39. // 设置文字颜色
  40. var selectedDict:[NSAttributedString.Key : Any] = [NSAttributedString.Key : Any]()
  41. selectedDict[NSAttributedString.Key.foregroundColor] = QSLColor.themeMainColor;
  42. childVc.tabBarItem.setTitleTextAttributes(selectedDict, for: .selected)
  43. self.tabBar.tintColor = QSLColor.themeMainColor;
  44. var normalDict:[NSAttributedString.Key : Any] = [NSAttributedString.Key : Any]()
  45. normalDict[NSAttributedString.Key.foregroundColor] = QSLColor.Color_888
  46. normalDict[NSAttributedString.Key.font] = UIFont.textF(10)
  47. childVc.tabBarItem.setTitleTextAttributes(normalDict, for: .normal)
  48. if #available(iOS 13.0, *) {
  49. childVc.tabBarController?.tabBar.unselectedItemTintColor = UIColor.clear
  50. }
  51. }
  52. }