일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- uiscrollview
- 리펙터링
- Human interface guide
- combine
- ribs
- 애니메이션
- map
- 클린 코드
- uitableview
- HIG
- 리펙토링
- tableView
- Observable
- collectionview
- RxCocoa
- Protocol
- UICollectionView
- MVVM
- Clean Code
- rxswift
- ios
- UITextView
- clean architecture
- SWIFT
- Refactoring
- swiftUI
- 리팩토링
- 스위프트
- swift documentation
- Xcode
- Today
- Total
목록swiftUI (160)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b9T0rI/btrKcxlVCXw/BEkt7nf92ZQHnHnxeO6bL1/img.png)
목차) SwiftUI의 기본 - 목차 링크 Spacer Stack안에서 사용되며, Stack의 크기만큼 내부 크기의 공백이 채우고 싶을때 사용 List와 row가 있을 때 row는 원래 좌측 정렬되어있지만, Spacer()를 추가하면 오른쪽 정렬로 변경 Spacer없는 경우 Spacer 추가한 경우 코드 struct ChecklistRow: View { let name: String var body: some View { HStack { Spacer() //
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/prxy1/btrJ7seQ5J5/PYRKqvAYsx4O6zeVs4NaJK/img.png)
목차) SwiftUI의 기본 - 목차 링크 Group Group은 여러개의 View 들에 동일한 속성을 부여하고 싶을때 사용 ex) 3개의 Text에 동일한 .font를 적용하고 싶은 경우, 3개의 Text를 Group안에 넣어서 관리 struct ContentView: View { var body: some View { Group { Text("SwiftUI") Text("Combine") Text("Swift System") } .font(.headline) Text("Some Text") } } GroupBox GroupBox는 view 연관있는 내용들을 하나로 묶은 UI GroupBox { Text("Content") } GroupBox("title") { Text("Content") } Grou..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mqE7J/btrJ7sMGokg/Ste20uZ7NXP7VyjM8NrNpK/img.gif)
목차) SwiftUI의 기본 - 목차 링크 Axis enum 타입 형태 단순히 horizontal, vertical이라는 case가 있는 형태 @frozen public enum Axis : Int8, CaseIterable { case horizontal case vertical @frozen public struct Set : OptionSet { public typealias Element = Axis.Set public let rawValue: Int8 public init(rawValue: Int8) public static let horizontal: Axis.Set public static let vertical: Axis.Set public typealias ArrayLiteralEleme..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/blRU8f/btrJZHXTViC/b17fGFKDfSkGPQxCpDiSkK/img.png)
목차) SwiftUI의 기본 - 목차 링크 ForEach collection형태의 데이터들에 접근하는 구조체 collection 형태인 데이터는 반드시 identifiable을 준수하는 구조체 ForEach는 collection을 순회할때 RandomAccess 방식을 사용하므로 효율적인 탐색이 가능 사용 방법 모델에 Identifiable을 준수하도록 구현 배열 collection으로 데이터 준비 private struct NamedFont: Identifiable { let name: String let font: Font var id: String { name } } private let namedFonts: [NamedFont] = [ NamedFont(name: "Large Title", fon..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/l6hFT/btrJGVIf3Ch/kcOZjkkUPGF1sqnptyE0Ck/img.gif)
목차) SwiftUI의 기본 - 목차 링크 List 형태 Hashable을 따르고, View를 준수하는 두 개의 제네릭스로 구성 struct List where SelectionValue : Hashable, Content : View 사용방법은 List 후 클로저안에 subviews들을 넣어서 구현 struct ContentView: View { var body: some View { List { Text("A List Item") Text("A Second List Item") Text("A Third List Item") } } } List(:) { } 형태로도 사용이 가능 struct Ocean: Identifiable { let name: String let id = UUID() } privat..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bM6NyD/btrJFPnEt0n/2kKAXOxNaFeu4QjrtWttm1/img.png)
목차) SwiftUI의 기본 - 목차 링크 HStack 개념 선언부 @frozen struct HStack where Content : View cf) @frozen이란? @unknown 먼저 알기) enum타입을 접근하는 switch-case문에서 사용되는 키워드 추가적인 case가 생겼을 때, 기존에 switch-case문에서 해당 case를 선언하지 않고 @unknown default로 선언해 놓으면 사용하는 쪽에서 warning 메시지를 받아볼 수 있어 인지할 수 있게끔 하는 키워드 그냥 default만 사용하면 어떤 새로 추가되는 case가 있는지 모르지만, @unlnown default를 사용하면 추가적인 case문이 있다고 warning메시지로 알려주는 기능 enum Color { case ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VeNnf/btrJLSp0NWv/LGOdqqMJICOxkyvts9nyEk/img.png)
목차) SwiftUI의 기본 - 목차 링크 NavigationView 뷰들의 관계를 push와 pop을 통해 계층 관계를 이루게끔 하는 뷰 (수평 관계는 TabView로 사용) iOS 16.0부터 Deprecated되었다는게 가장 중요 iOS 16.0부터는 NavigationStack 사용 NavigationView, NavigationLink 사용 방법 클로저 하위 뷰들을 안에넣어서 사용 cf) 가장 상위에는 TabView 그 다음에 NavigationView가 위치해야함 struct ContentView: View { var body: some View { NavigationView { Text("Hello, world!") } } } NavigationLink 네비게이션 형태로 presentatio..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/50ftT/btrJC5YryAZ/TyeU4BP8F2pszLU0yE27Z0/img.gif)
목차) SwiftUI의 기본 - 목차 링크 Stepper struct Stepper where Label : View 아래 Stepper 생성자를 이용하여 구현 public init( @ViewBuilder label: () -> Label, onIncrement: (() -> Void)?, onDecrement: (() -> Void)?, onEditingChanged: @escaping (Bool) -> Void = { _ in } ) onIncrement와 onDecrement에서 쓸 @State 프로퍼티 준비 @State private var value = 0 let colors = [ Color.orange, .red, .gray, .blue, .green, .purple, .pink ] @Vi..