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..
이렇게 자동스크롤이 되는 배너를 구현하려고 한다. 일단 배너는 의외로 간단하게 구현할 수 있다. TabView로 구현하면 된다! 배너 구현 코드 // BannerView.swift var body: some View { TabView { ForEach(viewModel.banners, id: \\.self) { banner in Image(banner.image) .resizable() .scaledToFill() } } .tabViewStyle(.page) } TabView에 .tabViewStyle(.page)를 이용하면 된다. 자동 스크롤 구현 코드 // BannerView.swift @State private var currentIndex = 0 var body: some View { TabVie..
// ProductDetailView.swift Button { isModalPresented.toggle() } label: { Text("구매하기") } .buttonStyle(ProductButtonStyle(height: 56, isMaxWidth: true)) .sheet(isPresented: $isModalPresented) { ProductOrderView(viewModel: viewModel) .presentationDetents([.height(80)]) } 이렇게 구매하기 버튼을 누르고 결제하기, 장바구니 modal을 띄우면 현재 뷰가 갑자기 자기 혼자 사라진다.. dismiss를 누른 것 처럼… 근데 알고보니 문제는 관련 뷰들의 코드에 없었다! 해결 방법 // MainTabView...
SwiftUI로 프로젝트를 하는데 이런 장바구니 화면에서 문제가 생겼다. 첫번째 아이템이든 두번째 아이템이든 세번째 아이템이든 무엇을 삭제해도 마지막 아이템이 사라지는 이슈가 있었다. 근데 웃긴게 프린트 찍어보니까 뷰모델에서는 제대로 적용돼서 원하는 요소가 삭제됐는데 뷰에서는 그게 안 되는 것… 일단 해결을 했는데 index를 이용해서 삭제하는게 아니라 id를 이용해서 삭제를 하면 된다. 기존의 코드 // CartView.swift @StateObject var viewModel = MyPageViewModel.shared ForEach(viewModel.cartItems.indices, id: \.self) { index in CartCardView(viewModel: CartViewModel(view..