안녕하세요 :) Zedd입니다. @available(iOS, introduced: 13.0, deprecated: 100000.0, message: "use NavigationStack or NavigationSplitView instead") public struct NavigationView : View where Content : View { ... } WWDC22에서 NavigationView가 deprecated되고 NavigationStack/NavigationSplitView가 나왔는데...한번 바꿔보려고 합니다. 💡 NavigationStack/NavigationSplitView가 iOS 16+ 부터 사용할 수 있기 때문에, 앱의 Deployment Target이 16+ 이상인경우에만 진행..
안녕하세요 :) Zedd입니다. 오늘은 Custom View Modifier만들기 및...이걸로 버전 분기 꼼수.. # 목적 이번 글에서는 1. View Modifier가 어떤것인지 2. Custom View Modifier를 만드는 방법 3. (번외) Custom View Modifier를 사용한 버전 분기 (꼼수).. 를 다룬다. # View Modifier SwiftUI에는 ViewModifier라는 프로토콜이 존재한다. 이 modifier를 적용하면 View의 원래 값의 다른 버전을 생성하게 된다. 어렵게 생각할 필요 없이, View Modifier는 그냥 우리가 늘상 쓰는 struct ContentView: View { var body: some View { Text("Zedd") .font(...
안녕하세요 :) Zedd입니다. 오늘은 ViewBuilder에 대해 공부! # ViewBuilder 정의 : Closure에서 View를 구성하는 custom parameter attribute 뭔소린지 모르겠지만 "Closure에서 (Child) View를 구성한다"만 알면 된다. @ViewBuilder 사용법을 알아보자 # 사용 1. @ViewBuiler Prameter HStack, VStack은 많이 쓰고 봤을것이다. var body: some View { HStack { Text("Zedd") Text("Zedd") } } 보통 이런식으로 쓸텐데, 저 HStack을 보면 Closure안에!!!!!! View들을 넣어주고 있다. HStack의 생성자는 다음과 같이 생겼는데, @inlinable p..
안녕하세요 :) Zedd입니다. 오늘은 그냥 기록용. 제목은 SwiftUI로 했지만 SwiftUI에만 국한된 이야기는 아닐 수 있겠다. UIKit으론 안해봤음ㅋ.. # 문제 struct ContentView: View { @State var selection: Int var arr = ["Zedd","Alan Walker", "David Guetta", "Avicii", "Marshmello", "Steve Aoki", "R3HAB", "Armin van Buuren", "Skrillex", "Illenium", "The Chainsmokers", "Don Diablo", "Afrojack", "Tiesto", "KSHMR", "DJ Snake", "Kygo", "Galantis", "Major Laze..
안녕하세요 :) Zedd입니다. iOS15에서 SwiftUI에 이것저것 많이 나왔는데, 그중 반가운게 하나 있더라구요~ SwiftUI에서 네트워크 요청을 해야할 때 요청을 시작하는 부분이..대부분 onAppear였는데요. var body: some View { List { ForEach(self.viewModel.names, id: \.self) { name in Text(name) } } .onAppear { self.viewModel.requestNames() ✅ } } iOS 15에서 task modifier가 나왔습니다! # task 정의는 view가 나타날 때(view appears) 수행할 비동기 작업을 추가합니다. 즉 네트워크 요청을 넣기 딱 좋은 위치가 된겁니다! var body: some..
안녕하세요 :) Zedd입니다. iOS 15에서 listRowSeparator가 드디어^^...나왔다길래 ^^... SwiftUI에서 Separator없애려면 .onAppear { UITableView.appearance().separatorStyle = .none } .onDisappear { UITableView.appearance().separatorStyle = .singleLine } 뭐 이런 짓을 해야한다고 해서 정말 믿기지가 않았거든요.. Separator없애려고 UITableView.appearance()까지 가는건 오바같아서 하지는 않았읍니다.. 이제부터 소개할 modifier들은 iOS 15이상에서만 가능하다는 사실 ^^.. OS분기도 짜증나는데 iOS 버전 분기까지 해야하는 상황 OT..
Xcode 13 Beta 5에서 navigationBarItems를 쓰려니.. 꽤 오래 버텼군..잘가라- future version에서 deprecate된다고 하는데, future version은 15다 ㅎㅎ.. 대신 toolbar를 사용하라고.. # toolbar를 사용하여 NavigationItem만들기 NavigationView { VStack {} .toolbar { ToolbarItem(placement: .navigationBarLeading) { ✅ Button(action: { // }, label: { Text("버튼") }) } } } 요렇게 만들면 된다. (참고로 ToolbarItem은 iOS 14부터 사용이 가능하다) placement에는 navigationBarLeading, na..
안녕하세요 :) Zedd입니다. 오늘은 App / Scene / View에 대해서 공부를 해보려고 합니다. 참고로 App, Scene은 iOS 14부터 사용이 가능합니다. App - 프로토콜 - 앱의 구조와 동작을 나타내는 타입 or 앱의 content를 나타내는 scene representing타입. (Xcode 12.2로) SwiftUI앱을 만들면 기본적으로 (내 타겟 이름) + App이라는 타입이 App 프로토콜을 준수하도록 되어있습니다. - body라는 프로퍼티가 요구됩니다. 그리고 body는 Scene 프로토콜을 준수하는 인스턴스를 리턴해야합니다. - 앱의 진입점을 제공하기 위해 타입 앞에 @main attribute를 추가해야합니다. Scene - 프로토콜 - Scene은 시스템에서 관리 &&..
- 스위프트 문법
- WidgetKit
- UIBezierPath
- Git
- np-complete
- swift array
- 제이슨 파싱
- ios 13
- swift 공부
- 피아노
- swift delegate
- swift tutorial
- fastlane
- FLUTTER
- iOS delegate
- github
- Accessibility
- Combine
- actor
- IOS
- SwiftUI
- WKWebView
- np-hard
- Swift
- swift3
- Xcode
- 회고
- WWDC
- 스위프트
- swift sort
- Total
- Today
- Yesterday