
DatePicker를 그냥 사용했더니 아이폰의 언어 설정이 한국어로 설정되어 있어도 영어로 떠서 당황했다.. 해결 방법DatePicker("날짜를 선택해주세요", selection: $selectDate, in: Date()..., displayedComponents: .date) .environment(\\.locale, Locale(identifier: String(Locale.preferredLanguages[0]))) // 사용자의 최상위 언어 가져오기이렇게 .environment를 추가하면 된다
단순하게 NavigationLink에 onTabGesture를 붙이면 될 거라고 생각했다. 하지만 이러면 onTabGesture는 동작하지 않는다.. 해결 방법struct InfoCollectionView: View { @State private var navigate = false // NavigationLink 기능 var body: some View { Button { // Button(onTabGesture) 기능! } label: { Text("완료") } .background( // NavigationLink 기능 NavigationLink(destination: SelectRegionView(viewModel: SelectRegionViewMod..

.background( Color.white .shadow(color: .gray.opacity(0.2), radius: 10, x: 0, y: 0) .mask(Rectangle().padding(.top, -20)))Button의 그림자는 이렇게 단순하게 background와 shadow를 이용하면 됐다. 하지만 TabView는 이렇게 해도 동작하지 않는다. 해결 방법import Foundationimport UIKitimport SwiftUIextension UITabBarController { open override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() tabB..
Combine이란?반응형 프로그래밍의 개념을 기반으로 개발된 프레임워크시간 경과에 따른 값을 처리하기 위한 통합된 선언적 API반응형 프로그래밍데이터 스트림과 변화의 전파에 관련된 선언형 프로그래밍 패러다임이다.데이터 스트림 : 시간에 따라 만들어진 일련의 이벤트 ex) 탭 이벤트 스트림선언형 프로그래밍명령형 프로그래밍 선언형 프로그래밍 명령형 프로그래밍선언형 프로그래밍How(어떻게)What(무엇)코드가 어떻게 작업을 수행해야 하는지결과에 집중하고 구체적인 행위를 감춤행위를 정의하고 행위에 데이터를 전달핵심 개념들Publisher : 값을 방출하거나, 완료 이벤트나 실패 이벤트를 전할 수 있다.Just() : 단일 값을 즉시 생산하는 Publisher. 에러 타입은 항상 Never이다.Future() :..

SplashView 작성 // SplashView.swift struct SplashView: View { var body: some View { VStack { Image("flo-splash") .resizable() // .aspectRatio(contentMode: .fill) .edgesIgnoringSafeArea(.all) } } } ContentView 작성 // ContentView.swift struct ContentView: View { @State private var showMainView = false var body: some View { VStack { if showMainView { PlayerView() } else { SplashView() .onAppear { Disp..