728x90
2월 13일 일요일 / 21일 차
CH06
넷플릭스 스타일 영화 추천 앱 만들기
UICollectionView를 구현하기 위한 Class와 Protocol | |
Purpose | Classes/Protocols |
Top-level containment and management |
UICollectionView UICollectionViewController |
Content management | UICollectionViewDataSource UICollectionViewDelegate |
Presentation | UICollectionViewReusableView UICollectionViewCell |
Layout | UICollectionViewLayout UICollectionViewAttributes UICollectionViewUpdateItem |
Flow layout | UICollectionViewFlowLayout UICollectionViewDelegateFlowLayout |
내용 요약 |
UICollectionView UICollectionViewController - 시각적인 요소 정의 - UIScrollView 상속 - Layout 정보 기반 데이터 표시 UICollectionViewDataSource protocol - 필수 요소 - Content 관리 및 Content 표시에 필요한 View 생성 UICollectionViewDelegate protocol - 선택 요소 - 특정 상황에서 View 동작 Custom UICollectionViewReusableView UICollectionViewCell - Header, Footer - 재사용 가능 UICollectionViewLayout UICollectionViewAttributes UICollectionViewUpdateItem - 각 항목 배치 등 시각적 스타일 담당 - View를 직접 소유하지 않는 대신 Attributes 생성 - 데이터 항목 수정시 UpdateItem 인스턴스 수신 UICollectionViewFlowLayout UICollectionViewDelegateFlowLayout protocol - Grid, line-based layout 구현 - 레이아웃 정보를 동적으로 Custom UICollectionView Compositional Layout (Size, Item > Group > Section > Layout으로 구성) - 복잡한 결과를 단순한 것으로 구성하기 - 이 것만으로 모든 레이아웃을 작성 가능하게 하기 - 프레임워크에서 자체 성능 최적화 수행 Size (너비와 높이의 값을 가짐) - Absolute(절대적인 값, 정확한 치수) - ex) widthDimension: .absolute(44), heightDimension: .absolute(44) - Estimate(추정 값, 예상 값) - ex) widthDimension: .estimated(200), heightDimension: .estimated(100) - Fractional(분수, 비율) - ex) widthDimension: .fractionalWidth(0.2), heightDimension: .fractionalWidth(0.2) SnapKit - 코드 베이스로 UI를 구현하고 Auto Layout을 고려해야할 때 직관적이고 간편하게 작성할 수 있도록 도와주는 오픈소스 프레임워크 |
복습할 내용
- UICollectionView에 대한 이해 및 사용법
- UICollectionView Compositional Layout에 대해
- SnapKit 사용법
오늘의 공부 후기
매 실습마다 StoryBoard를 이용해서 앱을 구현하다가 SnapKit을 사용해서 코드로만 구현해보니
직접적으로 볼 수 있는 UI가 없어서 헷갈렸지만 생각보다 구현이 간단했고 이러한 방법도 있다는 것을 새롭게 알게 되었습니다.
또한 평소 앱을 사용할 때 많이 보던 화면 구성이라 어떤 식으로 구현할지 궁금했는데 UICollectionView를 사용하여
다양하게 구현 가능한 것도 알게 되어 유용한 강의였습니다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
728x90