[iOS] (WWDC) What's New in UICollectionView in iOS 10 정리
UICollectionView는 앱을 관리하고 뷰의 레이아웃을 원하는대로 만들 수 있는 강력한 클래스입니다.
UICollectionView가 iOS10에서 달라진 점에 대해서 설명하는 세션입니다.
크게 세가지 부분으로 나누어 설명합니다.
-
Smooth Scrolling
스크롤을 하는 경우 부드럽게 나타내기 위해서는 프레임삭제,손실(drop frame)을 하면 안됩니다.
iOS앱이 부드럽게 나타내려면 초당 60프레임으로 실행되는 앱 애니메이션을 위해 노력해야 합니다 .
즉, 애니메이션이 "부드럽게" 나타나려면 사용자 인터페이스의 주어진 프레임이 16.67ms 미만으로 표시되어야 합니다. (16.67ms * 60 = 1second)
16.67ms 프레임속도가 넘어가면 프레임손실이 나타나게 됩니다.
이러한 방법을 해결하기위해 로딩을 줄이고 로딩되지 않는 셀을 사용합니다.
- UICollectionView에서 셀의 생명주기
- prepareForReuse
- cellForItemAtIndexPath - 모델에서 셀 데이터를 채우는 작업을 많이 하는 부분
- willDisplayCell - 셀이 화면에 표시되려고 할 때 가벼운 준비
- 셀이 화면에 나타나고 스크롤이 계속되면서 화면 밖으로 이동하기 시작합니다.
- didEndDisplayingCell
iOS 9이하에서는 10과 차이점은 willDisplayCell의 호출시점이 10에서는 실제로 뷰에 표시되기전까지 호출되지 않도록 변경되고 didEndDisplayingCell메서드가 호출된 후 cell은 즉시 재사용큐에 반환되지 않고 약간 유지되도록 변경되었습니다.
이러한 변경사항으로 실제로 필요하기전에 그리지 않으므로 병목현상을 피할 수 있게 되었습니다.
Cell Pre-fetching
UICollectionView가 기본적으로 셀을 미리 가져오도록 개선했습니다.
pre-fetching API
- UICollectionView에서 셀의 생명주기
-
Self-Sizing Cells
iOS 10이전에는 UICollectionViewFlowLayout에 아이템들의 사이즈를 제공하기위해 estimatedItemSize이 존재했습니다.
하지만 아이템들의 사이즈를 예측하기가 어렵기 때문에 UICollectionViewFlowLayoutAutomaticSize을 제공합니다. 아이템의 사이즈를 과거의 값을 활용하여 자동으로 사이즈를 예측합니다.
-
Interactive Reordering
페이징으로 재정렬하는 기능이 추가되었습니다.
collectionView.isPagingEnabled = true
UIRefreshControl
테이블뷰나 컬렉션뷰 상단으로 드래그할 때 indicator생기면 refresh되는 기능
참고링크
- [번역] UICollectionView Tutorial: Prefetching APIs
- UICollectionView prefetch
- What's New in UICollectionView in iOS 10 해외정리
Author And Source
이 문제에 관하여([iOS] (WWDC) What's New in UICollectionView in iOS 10 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sookim-1/iOS-Whats-New-in-UICollectionView-in-iOS-10-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)