iOS/iOS FastCampus

SwiftUI Enum 을 활용한 리팩토링 깔끔하게.

Developer-Michelle 2023. 6. 5. 11:38
import SwiftUI

enum Tab {
    case home
    case other
    
    //associated value
    var textItem: Text {
        switch self {
        case .home: return Text("Home")
        case .other: return Text("Other")
        }
    }
    
    var imageItem: Image {
        switch self {
        case .home: return Image(systemName: "house.fill")
        case .other: return Image(systemName: "ellipsis")
        }
    }
}


struct MainTabView: View {
    var body: some View {
        TabView {
            Text("Home")
                .tabItem {
                    Tab.home.imageItem
                    Tab.home.textItem
                }
            Text("Other")
                .tabItem {
                    Tab.other.imageItem
                    Tab.other.textItem
                }
        }
    }
}

struct MainTabView_Previews: PreviewProvider {
    static var previews: some View {
        MainTabView()
    }
}

'iOS > iOS FastCampus' 카테고리의 다른 글

번역기앱) enum의 활용  (0) 2023.06.20
번역기앱) textview delegate 사용  (0) 2023.06.20