일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- SWIFT
- clean architecture
- UITextView
- 애니메이션
- rxswift
- Xcode
- swiftUI
- 리펙토링
- swift documentation
- ribs
- ios
- uitableview
- HIG
- 클린 코드
- map
- tableView
- Human interface guide
- UICollectionView
- 스위프트
- 리팩토링
- Refactoring
- Observable
- Protocol
- RxCocoa
- 리펙터링
- uiscrollview
- Clean Code
- MVVM
- combine
- collectionview
- Today
- Total
목록Binding (5)
김종권의 iOS 앱 개발 알아가기
뷰 데이터 넘기기parentView -> childView 데이터를 넘겨주는 방법1) @State와 Binding으로 넘겨주기 (양방향 바인딩)2) EnvironmentObject를 사용하여 넘겨주기 (양방향 바인딩)1) @State와 Binding으로 넘겨주기@State 프로퍼리를 부모 뷰에 놓고, 달러 $를 붙여서 자식 뷰에 Binding 형태 프로퍼티를 넘겨주기양방향 바인딩ChildView에서 childText를 변경하면 parentText도 같이 변경되고, parentText가 변경되면 childText도 변경됨struct ContentView: View { @State private var parentText = "parent_text" var body: some View { ..
SwiftUI의 Binding 바인딩이란 A가 변경될 때 같이 B도 변경해주어야하는 경우, A와 B를 바인딩 해놓으면 A가 변경되었을때 B는 자동으로 변경되게끔 하는 기법을 의미 SwiftUI에서의 바인딩은 property wrapper 형태로 존재 구체적인 @Binding 개념은 이전 포스팅 글 참고 Binding 인터페이스 @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) @frozen @propertyWrapper @dynamicMemberLookup public struct Binding { public var transaction: Transaction public init(get: @escaping () -> Value, set: @e..
목차) SwiftUI의 기본 - 목차 링크 State 란? SwiftUI에 의해 관리되는 property wrapper 타입 struct ContentView: View { @State var age = 20 // Value, set: @escaping (Value, Transaction) -> Void) public static func constant(_ value: Value) -> Binding public var wrappedValue: Value { get nonmutating set } public var projectedValue: Binding { get } public init(projectedValue: Binding) public subscript(dynamicMember keyPa..
For - in 루프 stride(from:to:by:) stride(from:through:by:): through 포함 While 루프 repeat - while: 조건을 고려하기 전 repeat블록을 부조건 한번 실행 repeat { } while 조건문 switch 문의 암시적 fall through case문을 여러개 사용하지 않고, 컴마로 구분하여 'or 조건' 사용 (주의: if문에서는 콤마가 'end 조건') let anotherCharacter: Character = "a" // 컴파일 에러 switch anotherCharacter { case "a": case "A": print("The letter A") default: print("Not the letter A") } // 정상 ..
custom extension이란? 객체.rx.함수접근이 가능하게끔 표현 첫 번째 방법, Binder * Oberver only (Observable처럼 값을 받아서 처리한다는 개념이 아닌, 함수처럼 안에서 수행하라는 의미) * Main Scheduler에서 수행하는 것이 default class ViewController: UIViewController { let bag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() let obs = Observable.of(true) rx.myCustom.onNext(false) // observer라 가능 rx.myCustom.subscribe // observer라 불가능 obs.asDriver..