인스타그램에서 상대방 프로필에 들어갔을 때, 아무 게시글도 올리지 않았을 경우 'No posts yet'이라는 텍스트와 함께 뜨는 화면이 있다. 그런 화면을 'empty view'라 하는 것 같다.

 

나의 경우 컬렉션 뷰를 여러 섹션으로 나눠서 각 섹션 별로 셀을 다루는 작업을 하고 있었는데, 특정 섹션에서 셀 개수가 0일 때 empty view를 띄우는 것이 목적이었다.

이런 느낌.. section 2의 cell 개수가 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 색상을 하늘색으로 넣으려 했는데 실수로 뷰컨트롤러와 같은 색인 연보라 색으로 넣어서 티가 안나네.......중요한 건 아니니까 뭐..

셀 개수가 1개 이상일 때

 

셀 개수가 0개일 때

 

 

 

 

참고 링크

https://developer.apple.com/documentation/uikit/uicollectionview/1618016-numberofitems

 

Apple Developer Documentation

 

developer.apple.com

https://mini-min-dev.tistory.com/115

 

[iOS] 아무 데이터가 없을 때 나오는 화면,엠티뷰(empty view) 만들기

iOS 개발을 하면, 가장 자주 만들어야 할 화면이 바로 테이블 뷰와 컬렉션 뷰일 거다. 테이블 뷰(TableView)와 컬렉션 뷰(CollectionView)는 모두 같은 형태의 데이터를 표출할 때 큰 틀만 만들어두고, 그

mini-min-dev.tistory.com

 

+ Recent posts