CustomTabBarController.swift 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // CustomTabBarController.swift
  3. // QuickSearchLocation
  4. //
  5. // Created by mac on 2024/4/10.
  6. //
  7. import UIKit
  8. class CustomTabBarController: UITabBarController {
  9. lazy var blurTabBar: UIView = {
  10. let _blurTabBar = UIView(frame: CGRect(x: 0, y: -1, width: QSLConst.qsl_kScreenW, height: QSLConst.qsl_kScreenH))
  11. _blurTabBar.isUserInteractionEnabled = true
  12. self.tabBar.addSubview(_blurTabBar)
  13. return _blurTabBar
  14. }()
  15. override func viewDidLoad() {
  16. super.viewDidLoad()
  17. // 设置 tabbar 样式
  18. self.setTabBarAppearence()
  19. // 添加 tab 页
  20. self.addFoundationTab()
  21. // 默认进入页面到主页
  22. self.selectedIndex = 1
  23. managerAppOnlyLaunch()
  24. }
  25. //管理app启动埋点
  26. func managerAppOnlyLaunch() {
  27. guard UserDefaults.standard.string(forKey: "MANAGER_APP_ONLY_LAUNCH") != nil else {
  28. UserDefaults.standard.set("YES", forKey: "MANAGER_APP_ONLY_LAUNCH")
  29. UserDefaults.standard.synchronize()
  30. //只有app第一次启动才会埋点
  31. QSEventHandle.gravityPush(eventName: QSLGravityConst.app_launch, eventProps: ["id": 02001])
  32. return
  33. }
  34. }
  35. func addFoundationTab() {
  36. self.addFriendTab()
  37. self.addHomeTab()
  38. self.addCheckTab()
  39. self.addMineTab()
  40. }
  41. }
  42. extension CustomTabBarController {
  43. func setTabBarAppearence() {
  44. self.tabBar.backgroundColor = .white
  45. self.tabBar.shadowImage = UIImage.image(color: .hexStringColor(hexString: "#EEEEEE"), size: CGSize(width: QSLConst.qsl_kScreenW, height: 1))
  46. }
  47. }
  48. extension CustomTabBarController: UITabBarControllerDelegate {
  49. override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
  50. switch item.tag {
  51. case 0:
  52. QSEventHandle.eventPush(eventName: QSLGravityConst.tab_friend)
  53. break
  54. case 1:
  55. QSEventHandle.eventPush(eventName: QSLGravityConst.tab_location)
  56. break
  57. case 2:
  58. QSEventHandle.eventPush(eventName: QSLGravityConst.tab_message)
  59. break
  60. case 3:
  61. QSEventHandle.eventPush(eventName: QSLGravityConst.tab_mine)
  62. break
  63. default:
  64. break
  65. }
  66. }
  67. }
  68. extension CustomTabBarController {
  69. /// 添加 好友 Tab
  70. func addFriendTab() {
  71. let imageInsets = UIEdgeInsets.zero
  72. let titlePostion = UIOffset(horizontal: 0, vertical: 0)
  73. let vc = QSLFriendController()
  74. self.addChildViewController(childVc: vc, title: "好友", image: "tab_friends_normal", selectedImage: "tab_friends_selected", imageInsets: imageInsets, titlePosition: titlePostion, index: 0)
  75. }
  76. /// 添加 主页定位 Tab
  77. func addHomeTab() {
  78. let imageInsets = UIEdgeInsets.zero
  79. let titlePostion = UIOffset(horizontal: 0, vertical: 0)
  80. let vc = QSLHomeController()
  81. self.addChildViewController(childVc: vc, title: "定位", image: "tab_location_normal", selectedImage: "tab_location_selected", imageInsets: imageInsets, titlePosition: titlePostion, index: 1)
  82. }
  83. /// 添加 消息 Tab
  84. func addCheckTab() {
  85. let imageInsets = UIEdgeInsets.zero
  86. let titlePostion = UIOffset(horizontal: 0, vertical: 0)
  87. let vc = QSLMessageController()
  88. self.addChildViewController(childVc: vc, title: "消息", image: "tab_message_normal", selectedImage: "tab_message_selected", imageInsets: imageInsets, titlePosition: titlePostion, index: 2)
  89. }
  90. /// 添加我的 Tab
  91. func addMineTab() {
  92. let imageInsets = UIEdgeInsets.zero
  93. let titlePostion = UIOffset(horizontal: 0, vertical: 0)
  94. let vc = QSLMineController()
  95. self.addChildViewController(childVc: vc, title: "我的", image: "tab_mine_normal", selectedImage: "tab_mine_selected", imageInsets: imageInsets, titlePosition: titlePostion, index: 3)
  96. }
  97. }