일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 구조체
- 연산자
- 안드로이드
- 이스케이핑
- 풀이
- 스위프트
- 백준
- 자바
- 생명주기
- View
- concurrency
- 프로그래머스
- rx
- Self
- Swift
- Subject
- 서브스크립트
- weak
- 클로저
- 테스크
- 옵셔널
- RxSwift
- 알고리즘
- ios
- observable
- 리스트뷰
- 차이
- 해시
- 프래그먼트
- async
- Today
- Total
목록전체 글 (177)
study record
Dispatch란? Dispatch란 어떤 메서드를 호출할 것인지를 결정하여, 그것을 실행하는 메커니즘이다. Swift에서는 Static Dispatch와 Dynamic Dispatch 두 가지 방식이 있다. 즉, 호출할 함수를 "컴파일 타임"에 결정하느냐, "런타임"에 결정하냐에 따른 방식이다. Static Dispatch(Direct Call) "컴파일 타임"에 호출될 함수를 결정하여, 런타임 때 그대로 실행한다. 컴파일 타임에 결정이 되기 때문에 성능상 이점을 가질 수 있다. Dynamic Dispatch(Indirect Call) "런타임"에 호출될 함수를 결정한다. Swift에서는 클래스마다 함수 포인터들의 배열인 vTable(Virtual Dispatch Table)을 유지한다. 하위 클래스가..
레이아웃 사이클 iOS 레이아웃 사이클은 세가지 단계로 이루어진다. 1. 제약 조건 (Constraints) - 오토레이아웃의 제약 조건 갱신 - 제약 조건은 뷰를 실제로 배치하는데에는 영향을 주지 않는다. - 제약 조건의 갱신은 뷰 계층구조에서 하위뷰에서 상위뷰의 순서로 이루어진다. 2. 레이아웃 (Layout) - 제약 조건을 바탕으로 레이아웃을 갱신한다. - 레이아웃은 구체적인 뷰의 프레임이다. - 이 단계에서 뷰의 Center와 Bounds를 결정한다. - 레이아웃의 갱신은 뷰 계층구조에서 상위뷰에서 하위뷰의 순서로 이루어진다. 3. 그리기 (Draw) - 레이아웃 단계에서 구한 프레임을 CoreGraphics를 사용하여 화면에 그린다. 뷰컨트롤러의 레이아웃 사이클 1. loadView() IB에..
IntrinsicContentSize 본질적인 콘텐츠 크기이다. 대부분의 view들은 기본적으로 컨텐츠 크기만큼의 size를 가지고 있다. UILabel, UIButton은 오토 레이아웃으로 구현할 때 제약사항으로 width와 height를 추가하지 않아도 오류가 나지 않는 이유는 intrinsicContentSize를 가지기 때문이다. UIView 같은 경우는 IntrinsicContentSize를 가지지 않으며, ImageView,TextView는 컨텐츠에 따라 변화한다. invalidateIntrinsicContentSize() view의 컨텐츠의 크기가 바뀌었을 때 intrinsicContentSize프로퍼티를 통해 size를 갱신하고 그에 맞게 오토레이아웃이 업데이트되도록 만들어주는 메소드이다...
UIView에는 layer 프로퍼티가 있다. layer는 CALayer의 객체이다. CALayer는 CoreAnimation Layer를 뜻한다. UIView는 하나의 CALayer(Root)만 가지고 있다. CALayer(Root)는 SubLayer를 여러 개 둘 수 있다. UIView의 SubView는 UIView의 CALayer(Root) 위에 얹혀지는 것이다. 뷰를 여러 개 쌓아서 표현하는 것 보다 레이어를 쌓아서 만드는게 퍼포먼스 측면에서 훨씬 가볍다. iOS 개발에서 보여지는 부분의 기본을 구성하는 UIView는 사실 그려지는 것이 UIView 자체가 아니라 내부 layer에 그려지는 것이다. 기본적으로 CALayer로 구성되어 있는 Layer는 그려지는 컨텐츠에 대한 캐시를 사용하며, 이는 ..