collectionView 6

[ iOS ] CompositionLayout 방향 이해하기

📖 CompositionalLayoutCollectionView의 CompositionalLayout은 Section, Group, Item으로 구성되어있다. 여기에서 Group은 NSCollectionLayoutItem 의 하위 클래스이기 때문에 Group 안에 Group이 들어갈 수도 있다.       🚥 Section과 Group의 방향CompositionalLayout에서는 Section의 방향과 Group의 방향을 설정할 수 있다. Group의 item 배치 방향은 .vertical과 .horizontal 메서드로 지정해줄 수 있고, Section의 scroll 방향은 UICollectionViewCompositionalLayoutConfiguration을 통해 설정할 수 있다.  위 그림을..

iOS 2024.06.27

[ iOS ] 데이터 유무에 따라 CollectionView UI 변경하기 with DiffableDataSource, Snapshot

글을 게시한 이후 코드에 문제가 있다는 걸 발견해 이를 수정했습니다!문제를 해결하기까지 시행착오가 궁금하시다면 이 글 봐주세요~ [ iOS 시행착오 ] CollectionView에 Cell이 하나만 보이는 이유👩‍💻배경👩‍💻ChapterList를 개발하던 중, 분명 item이 3개가 있는데 cell이 1개만 보이는 문제가 발생했다! 그래서 이전에 작업했던 BookList에서도 확인해 보니 똑같은 문제가 발생했다.. BookList88yhtserof.tistory.com         1️⃣ 구현하기 전에 먼저 알아보기 ☝️ 구현 간략 요약Cell과 Section, Item을 BookList와 Empty 두 경우로 구분하여, 데이터 유무를 확인한 후 DiffableDataSource에 Cell을 등..

iOS 2024.06.17

[ iOS ] CollectionView의 Section 숨기기 - CompositionalLayout

CollectionView의 Section CollectionView는 여러 Section을 둘 수 있다. 가장 대표적인 예로는 App Store이다. 아래 사진을 보면 아래로도 스크롤이 되며 여러 단락으로 내용이 나뉘어져 있고 각 단락이 가로로 스크롤이 되어 여러 아이템들을 보여준다. 앱스토어처럼 항상 collectionView의 데이터가 있는 경우도 있지만 메모, 다이어리를 저장 목적 CollectionView는 데이터 저장 전이나 데이터를 다 삭제한 경우에는 CollectionView가 데이터 없이 빈 공간으로 있어야 한다. Section이 하나거나 마지막 Section이라면 데이터가 없더라도 문제되지 않지만 첫 번째 또는 중간 Section이라면 데이터가 없을 경우 다음 Section까지 그저 텅..

iOS 2023.03.06

[ iOS 시행착오 ] CollectionView의 Section 숨기기 -CompositionalLayout

👩‍💻배경👩‍💻 원래 Section이 한 개였던 collection view를 두 개로 만들었는데 아이템이 아무것도 없으면 그냥 텅- 빈 공간이 남게 되어 사용자 경험이 좋지 않을 것 같아 아이템이 없을 경우 Section을 숨기고자 계획했다. How to deal with empty items section Section을 접는 건 자주 보이는 기능이었기 때문에 간단하지 않을까 생각했다. 그래서 관련 메서드나 프로퍼티가 있지 않을까 공식문서을 열심히 찾아보았지만 좋은 결과를 얻지 못했다. 그래서 다시 또 열심히 구글링을 했다. 내가 자주 봤던 Section 숨김 기능은 보통 TableView를 활용한 것이거나 FlowLayout을 사용한 방법이었는데, 나는 처음부터 Section을 여러 개 만들 계획이..

개발 시행착오 2023.03.05

[ iOS 시행착오 ] CollectionView 데이터 업데이트하기 (Performing reloadData as a fallback — Invalid update)

👩‍💻배경👩‍💻 CollectionView를 사용하면 cell 삭제, 추가, 변경 등 다양한 이유로 데이터를 업데이트해야 한다. 그때 reloadData, reloadSection, deletedItem, insertItem 등 데이터 변경 관련하여 CollectionView의 레이아웃을 업데이트해주는 메서드를 사용한다. 유효하지 않은 업데이트 [UICollectionView] Performing reloadData as a fallback — Invalid update: invalid number of items in section 0. ... deleteItem 메서드를 사용해 CollectionView를 업데이트하려 하는데 위와 같은 오류가 발생하고 collectionView에 어떠한 변화도 없었다..

개발 시행착오 2023.03.01

[ iOS ] cell 내 버튼 선택 이벤트 구현 (+ Delegate 패턴)

공부한 내용을 정리한 글입니다. 문제 사진 내 버튼 선택하기 1. cell 내 버튼 이벤트 발생시키기 UICollectionViewControllerDelegate의 collectionView(_:didSelectItemAt:) 메서드를 통해 collectionView Cell의 선택 이벤트를 처리할 수 있다. 하지만 이 이벤트는 cell의 이벤트를 의미하지 cell 내 버튼의 이벤트를 의미하지는 않는다. 우리는 버튼이 cell 내에 있다는 것을 알고 있어야 한다. collectionView(_:didSelectItemAt:) 델리게이트에 특정한 인덱스의 아이템이 선택되었음을 알린다. 버튼에 선택 이벤트가 발생하면 해당하는 액션 함수가 호출되므로, 액션함수 내에 사진을 선택하는 작업을 구현하면 된다. 하..

iOS 2022.06.14
728x90