인스타그램에서 상대방 프로필에 들어갔을 때, 아무 게시글도 올리지 않았을 경우 'No posts yet'이라는 텍스트와 함께 뜨는 화면이 있다. 그런 화면을 'empty view'라 하는 것 같다.
나의 경우 컬렉션 뷰를 여러 섹션으로 나눠서 각 섹션 별로 셀을 다루는 작업을 하고 있었는데, 특정 섹션에서 셀 개수가 0일 때 empty view를 띄우는 것이 목적이었다.
특정 섹션의 셀 개수에 접근하는 부분을 코드로 어떻게 작성해야할 지 몰라 헤맸는데, 생각보다 간단했다.
// Declaration
func numberOfItems(inSection section: Int) -> Int
(해당 컬렉션 뷰 이름).numberOfItems(inSection: (해당 섹션 번호))
로 접근하면 된다.
실제로 사용할 땐 다음과 같이 if문을 사용하여 해당 섹션의 데이터 수가 0일 경우 이미지 뷰의 isHidden 값을 false로 바꾸어 화면에 나타나게 할 수 있다. 이미지 뷰는 컬렉션 뷰 자체에 구현해주면 된다.
if (profileCollectionView.numberOfItems(inSection: 2) == 0) {
no_posts.isHidden = false
}
그러면 다음과 같이 나타난다.
섹션1 색상을 하늘색으로 넣으려 했는데 실수로 뷰컨트롤러와 같은 색인 연보라 색으로 넣어서 티가 안나네.......중요한 건 아니니까 뭐..
참고 링크
https://developer.apple.com/documentation/uikit/uicollectionview/1618016-numberofitems
https://mini-min-dev.tistory.com/115
'iOS' 카테고리의 다른 글
[Swift] 프로필 수정 화면 구현 - 1.Placeholder 설정하기(UITextField와 UITextField의 차이) (0) | 2022.08.10 |
---|---|
[Swift] 프로필 수정 화면 구현 - 0.Overview (0) | 2022.08.04 |
[Swift] 컬렉션뷰셀에서 뷰컨트롤러로 화면 전환하기 (Delegate Pattern) (0) | 2022.07.28 |