[swift]project_서점App(3)

Jeff·2025년 1월 5일

저번에 이어서 개발을 이어가려고 합니다.

# collectionView

이번엔 화면을 구성하기 위해 collectionView를 사용해 보았습니다.

Composition Layout참고 자료
  • 왼쪽의 사진은 ios13부터 기존의 flowLayout방식을 보완해 나온 CompositionLayout입니다. 요즘 우리가 자주 볼 수 있는 컬렉션뷰의 형태이다. 기존에 없던 Group이라는 개념이 생겨 각 섹션마다 다르게 구성할 수 있게 되었다.

  • 기존에 해왔던 방식으로 CollectionView 객체를 생성해서 만들었지만 아래와 같은 오류를 마주치게 되었습니다.

    위의 오류는 UICollectionView는 nil 타입이 아닌 layout 파라미터로 초기화 해주어야하기에 아래와 같이 초기화를 해주면 간단하게 해결이 되었다.

    let collectionView = UICollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
  • 아래와 같이 두개의 섹션으로 나누어 첫번째 섹션은 가로로 스크롤이 가능하고 간단하게 책의 이미지와 책의 이름을 나타내려고 했습니다. 두번째 섹션은 테이블 뷰와 비슷한 느낌의 컬렉션 뷰를 구성하였습니다.

  • 초기에 최근 본 책부분에서 적용하려던 Layout이 구현이 되지 않아 찾아보았더니 각 섹션에 맞게 Layout은 구현을 해 놓았지만 아래의 두번째 사진과 같이 각 케이스별로 섹션에 맞는 셀을 적용해야 했던걸 잊고 있었던 것이였습니다.

  • 그리고 CompositionLayout을 적용하는 Layout 잡는 부분에서 조금 시간을 들였던거 같습니다.

최근 본 책 Layout검색 결과 Layout

두 코드에서 보시는와 같이 먼저 작은 단위인 item -> group -> section 순으로 크기를 정해주면 된다.
CollectionView의 item 사이즈를 정하는 방법(NSCollectionLayoutDimension)
.absolute - 고정 크기
.estimated - 런타임에 크기가 정해지는경우(예상크기)
.fractional - 비율(컨테이너에 대한 비율)
내가 원하는 옵션을 선택해서 작성해주면 됩니다.

# 개인 사정으로 인해 아직 개발이 마무리가 되지않아 계속 업데이트하고 있는 중입니다.

profile
기본에 충실한 개발자가 목표!

0개의 댓글