본문 바로가기

전체 글54

[SwiftUI] ScrollViewReader iOS 14에서 새로 추가된 ScrollViewReader는 ScrollView에서 Scoll to Bottom, Scroll to Top과 같이 ScrollView에서 특정 위치로 스크롤을 할 수 있도록 해주는 View 이다. 아래 예제 코드와 같이 사용할 수 있다. import SwiftUI struct ContentView: View { // 단순 커스텀 모델 데이터 var list: [CustomItem] var body: some View { ScrollViewReader { scrollView in ScrollView { Button("Scroll to bottom") { withAnimation { scrollView.scrollTo(list.count - 1, anchor: .center).. 2021. 10. 29.
[SwiftUI] Casousel 구현 1. iOS 14 미만 Casousel 구현 더보기 Carousel 과 현재 page를 표시할 수 있는 Page Controller를 각각 구현해서 사용해야 한다. 1. Carousel View 구조체 구현 struct Carousel: UIViewRepresentable { func makeCoordinator() -> Coordinator { return Carousel.Coordinator(parent1: self) } func updateUIView(_ uiView: UIViewType, context: Context) { print("") } var width: CGFloat @Binding var page: Int var height: CGFloat func makeUIView(context:.. 2021. 10. 29.
[SwiftUI] iOS 13 -> iOS 14 변경점 해당 문서는 확인된 사항들을 누적해서 기록할 예정이다. iOS 13 Target SDK로 구현시 참고할 사항 GridView LazyVGrid / LazyHGrid 사용보다는 iOS 13에서 사용하던 VStack과 HStack 조합을 사용하는 것이 좋을 것 같다. iOS 버전으로 구분하여 구현 시 오히려 유지보수가 어려워질 수 있다. Lazy Loading 이 필요하다면 UICollectionVIew를 UIViewRepresentable를 이용해서 구현하고, 단순히 GridView 형태는 VStack, HStack 조합으로 구현하거나 다른 Framework 를 사용하자. 비교표 구분 iOS 14 iOS 13 비고 공통 .ignoresSafeArea() : 안전영역 무시하기 ignoresSafeArea 로.. 2021. 10. 29.
[SwiftUI] 신규 SwiftUI 프로젝트에서 AppDelegate, SceneDelegate 사용하기 아래 내용은 XCode 13.1 을 기준으로 작성했다. 1. 프로젝트 생성 XCode 13.1 에서 프로젝트를 생성 시 Interface를 SwiftUI 로 생성하면, 기본 iOS SDK Target을 15.0으로 한다. 그리고 프로젝트의 시작은 기존 AppDelegate 및 SceneDelegate가 아닌 App 프로토콜을 상속한 프로젝트명+App 구조체를 시작점으로 한다. (참고로 App 프로토콜은 iOS 14 이상에서 사용 가능하다.) import SwiftUI @main struct TestApp: App { var body: some Scene { WindowGroup { ContentView() } } } 2. AppDelegate 및 SceneDelegate 파일 생성 AppDelegate와.. 2021. 10. 29.