목록분류 전체보기 (179)
study record
IntrinsicContentSize 본질적인 콘텐츠 크기이다. 대부분의 view들은 기본적으로 컨텐츠 크기만큼의 size를 가지고 있다. UILabel, UIButton은 오토 레이아웃으로 구현할 때 제약사항으로 width와 height를 추가하지 않아도 오류가 나지 않는 이유는 intrinsicContentSize를 가지기 때문이다. UIView 같은 경우는 IntrinsicContentSize를 가지지 않으며, ImageView,TextView는 컨텐츠에 따라 변화한다. invalidateIntrinsicContentSize() view의 컨텐츠의 크기가 바뀌었을 때 intrinsicContentSize프로퍼티를 통해 size를 갱신하고 그에 맞게 오토레이아웃이 업데이트되도록 만들어주는 메소드이다...
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/coifwQ/btrx9Bnqasy/ghkiKdGWJbNuV3yKkiVzY0/img.png)
UIView에는 layer 프로퍼티가 있다. layer는 CALayer의 객체이다. CALayer는 CoreAnimation Layer를 뜻한다. UIView는 하나의 CALayer(Root)만 가지고 있다. CALayer(Root)는 SubLayer를 여러 개 둘 수 있다. UIView의 SubView는 UIView의 CALayer(Root) 위에 얹혀지는 것이다. 뷰를 여러 개 쌓아서 표현하는 것 보다 레이어를 쌓아서 만드는게 퍼포먼스 측면에서 훨씬 가볍다. iOS 개발에서 보여지는 부분의 기본을 구성하는 UIView는 사실 그려지는 것이 UIView 자체가 아니라 내부 layer에 그려지는 것이다. 기본적으로 CALayer로 구성되어 있는 Layer는 그려지는 컨텐츠에 대한 캐시를 사용하며, 이는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lghCV/btrxXpt5x5H/mPRmqFObRFLlpIkWXHqL10/img.png)
Responder Responder는 이벤트를 핸들링하고 이벤트에 반응할 수 있는 객체이다. 모든 responder 객체는 UIResponder에서 상속된 클래스들의 인스턴스이다. 이 클래스는 이벤트 핸들링을 위한 인터페이스와 responder들의 기본적인 행위를 정의한다. UIApplication, UIViewController 객체들, 모든 UIView 객체들을 포함한 많은 주요 객체들 또한 responder이다. 이벤트가 일어나면, UIKit는 이벤트 핸들링을 위해 해당 이벤트를 앱의 responder 객체들에게 보낸다. 이벤트의 종류엔 터치 이벤트, 모션 이벤트 등이 있다. 특정 이벤트를 핸들링하기 위해서는 responder가 해당 이벤트에 대응되는 메서드들을 오버라이드하여 구현해야 한다. 예시로..
Driver UI에 특화된 Observable로, MainScheduler에서 사용한다. error를 방출하지 않으며, Observable을 Wrapping한다. Driver는 다른 구현체에는 존재하지 않고, UI에 사용하기 위해 RxCocoa에 도입된 Observable의 특수 케이스이다. BehaviorRelay와 많은 공통점을 가지고 있으며, Observable을 UI 처리 목적으로 죽지 않는 스트림을 제공하기 위해 생성된 것이다. - 절대 종료되지 않는다. - 무조건 MainScheduler에서 돌아간다. - 구독 역시 MainScheduler에서 하는 것이 권장된다. 구독 메서드 : drive() 구독 시 가장 최근 이벤트를 받는다. 언제 사용? Main Thread를 사용하고자 할 때 .obs..