[SwiftUI]使用TabView自定义tabbar

import SwiftUI

struct ContentView: View {
    
    enum TabType {
        case skill
        case composition
        case photograph
        case album
        case mine
    }
    
    private func tabItemTitle(_ type: TabType) -> String {
        switch type {
        case .skill:
            return "技巧"
        case .composition:
            return "构图"
        case .photograph:
            return "拍摄"
        case .album:
            return "相册"
        case .mine:
            return "我的"
        }
    }
    
    @State private var selectType: TabType = .skill
    
    var body: some View {
        NavigationView {
            TabView(selection: $selectType) {
                MPSkillView().tabItem {
                    Label(tabItemTitle(.skill), systemImage: "figure.hiking")
                }.tag(TabType.skill)
                
                MPCompositionView().tabItem {
                    Image(systemName: "book")
                    Text(tabItemTitle(.composition))
                }.tag(TabType.composition)
                
                MPPhotographView().tabItem {
                    if selectType == .photograph {
                        Label(tabItemTitle(.photograph), systemImage: "camera.on.rectangle")
                    } else {
                        Label(tabItemTitle(.photograph), systemImage: "camera")
                    }
                }.tag(TabType.photograph)
                
                MPAlbumView().tabItem {
                    Label(tabItemTitle(.album), systemImage: "photo")
                }.tag(TabType.album)
                
                MPMineView().tabItem {
                    Label(tabItemTitle(.mine), systemImage: "person.fill")
                }.tag(TabType.mine)
            }
        }
    }
    
    init() {
         UITabBar.appearance().backgroundColor = .white
    }
    
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

示意图: