UICollectionViewDiffableDatasource 개발기
후기 RxDataSource 나 기존 UICollectionViewLayout 으로 구현 불가능한 세로/가로 스크롤형 뷰를 생성 가능 이전 버전에 대한 대응 노하우가 쌓인다면 사용해볼만 함 지원하는 OS 버전이 낮을 수록 안정성이 떨어짐 최소버전을 ...
후기 RxDataSource 나 기존 UICollectionViewLayout 으로 구현 불가능한 세로/가로 스크롤형 뷰를 생성 가능 이전 버전에 대한 대응 노하우가 쌓인다면 사용해볼만 함 지원하는 OS 버전이 낮을 수록 안정성이 떨어짐 최소버전을 ...
UIStoryBoard를 사용한다면 UITabBarItem을 CustomClass로 적용하기 매우 쉽다. 코드 베이스라면 UITabBarItem이 UITabBarController에서 자체적으로 가지고 있기 때문에 CustomClass를 적용하기가 애매해진다.
UIActivityViewController는 OS 공유화면으로 매우 널리 쓰인다. String, Image 등 손쉽게 다른 앱에 컨텐츠를 공유할 수 있다.
WKWebView를 사용하다보면 종종 아래와 같은 크래시를 발견할 수 있다. Fatal Exception: NSInternalInconsistencyException Completion handler passed to -[UIViewController webView:runJa...
유연하고 시각적으로 항목을 결합하는 Layout이며 iOS 13+ 이상에서 사용할 수 있다. Group이라는 중간 계층이 추가되어 horizontal scroll, group items 등 다양한 화면을 만들 수 있다.
TableView(또는 CollectionView)를 그리기 위한 데이터를 관리하고 UI를 업데이트 하는 역할 Data Source와 달리 데이터가 달라진 부분을 추적하여 자연스럽게 UI를 업데이트 UI Data를 관리하고, 변경된 데이터만 UI를 자연스럽게 업데이트 ...
보호된 파일(키 체인, UserDefaults 등)을 엑세스 가능한지 확인하는 변수이다.
Not running, Inactive, Active, Background, Suspended
loadView() 컨트롤러가 관리하는 뷰를 로드한다. 뷰컨트롤러가 생성되고 순차적으로 완성되었을때만 호출된다.
뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기&위치 변경한다. 이 메소드는 setNeedsLayout과 같이 수동으로 layoutSubviews를 예약하는 행위이지만 해당 예약을 바로 실행시킨다.
업데이트 주기에 해당 View와 모든 하위 View를 레이아웃 및 draw 하도록 시스템에 알려주는 역할을 한다.
next drawing cycle 동안 View를 업데이트해야 함을 시스템에 알린다. setNeedsDisplay()메소드 또는 setNeedsDisplay (_ :)를 사용하여 View rendering 을 시스템에 요청한다.
뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기, 위치 변경한다. auto layout을 사용하면 각 뷰의 autoresizingMask프로퍼티를 설정하여 상위 뷰의 크기가 변경되었을 때 어떻게 대응할 지 규칙을 정할 수 있다. 뷰의 크기에 변경이 발생하면 우선...
SuperView 기준
전달된 CGRect 의 영역에 대해 뷰를 다시 그릴때 호출된다.
자신 기준
UIView클래스는 컨텐츠를 표시할 때, on-demand 드로잉 모델을 사용한다. View를 업데이트하려면 다음 드로잉사이클 때까지 기다렸다가 한꺼번에 업데이트 된다. 비동기 요청을 기록하고 즉시 리턴합니다. 즉각적인 업데이트를 강제하지는 않지만, 다음 업데이트 주기를 기다...