SearchBarController랑 CollectionView를 함께 사용해보려고 했다.
테이블뷰를 코드 베이스로 구현해보았기 때문에 똑같을 줄 알고 그대로 구현했는데
"UICollectinView must be initalized with a non-nil layout parameter"이라는 에러가 발생했다...
읭 .. ? 싶어서 찾아보니 CollectionView는 레이아웃 파라미터 없이 초기화를 할 수 없다는 의미였음..
tableView랑은 다르게 collectionView는 생성할 때 레이아웃을 파라미터로 넣어서 생성해야 한다.
코드로 보여주면 tableView처럼 UITalbeView()로 생성할 수 없다는 말
왜인지 찾아보니
공식 문서에도 이렇게 나와있었다 ..
어쨌든 파라미터로 레이아웃을 넣어주어야 된다는 말
아마도 셀을 가지고 구성된 뷰 자체를 배치해야 되어서 그런 것 같음 (?)
그래서 나는 UICollectionViewFloyLayout()으로 레이아웃을 만들어서
뷰를 만들고 그 안에서 설정을 다 해주었다.
추가로 설명을 붙여놓자면
- minimumLineSpcing : 아이템 위아래 사이 간격 설정
- minimumInteritemSpacing : 아이템 사이 간격 설정
- itemSize : 말 그대로 collectionView안의 아이템 사이즈
어쨌든 그러고 나서
그랬더니 아주 말끔히 잘 돌아갔다 !
참고로 SearchBar의 화면으로 collectionView를 넣은 코드를 구현해서
만든 CollectionView의 인스턴스가 SearchController으로 들어가있음 !!
오포끝!
'소소한 발견' 카테고리의 다른 글
[SwiftUI] ViewBuilder에서 Guard문 지양하기 (0) | 2023.07.20 |
---|