ViewRouter.swift 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //
  2. // ViewRouter.swift
  3. // fiveConstant
  4. //
  5. // Created by 李建 on 2023/1/29.
  6. //
  7. import Foundation
  8. import SwiftUI
  9. enum Page {
  10. case home
  11. case room
  12. case found
  13. case my
  14. }
  15. class ViewRouter: ObservableObject {
  16. @Published var currentPage: Page = .home
  17. }
  18. struct TabBarIcon: View {
  19. @StateObject var viewRouter: ViewRouter
  20. let assignedPage: Page
  21. let width, height: CGFloat
  22. let systemIconName, tabName: String
  23. var body: some View {
  24. VStack {
  25. Image(systemName: systemIconName)
  26. .resizable()
  27. .aspectRatio(contentMode: .fit)
  28. .frame(width: width, height: height)
  29. .padding(.top, 6)
  30. Text(tabName)
  31. .font(.footnote)
  32. .font(.system(size: 16))
  33. Spacer()
  34. }
  35. .padding(.horizontal, -2)
  36. .onTapGesture {
  37. viewRouter.currentPage = assignedPage
  38. }
  39. .foregroundColor(viewRouter.currentPage == assignedPage ? Color("SecondColor") : .gray)
  40. }
  41. }