[swift] DZNEmptyDataSet을 사용하여 커스텀 디자인된 빈 상태 뷰 추가하기

앱을 개발하다보면 데이터가 없는 상태 또는 로딩 중인 상태일 때 사용자에게 내용이 없음을 알려주는 기능이 필요할 수 있습니다. 이때 DZNEmptyDataSet 라이브러리를 사용하면 간단하게 커스텀 디자인된 빈 상태 뷰를 추가할 수 있습니다.

DZNEmptyDataSet이란?

DZNEmptyDataSet은 iOS 앱에서 테이블 뷰나 컬렉션 뷰 등의 빈 상태를 표시하기 위한 라이브러리입니다. 이 라이브러리를 사용하면 빈 상태일 때 텍스트, 이미지, 버튼 등으로 구성된 사용자 정의 뷰를 표시할 수 있습니다.

DZNEmptyDataSet 사용하기

1. DZNEmptyDataSet 라이브러리 설치

먼저, 프로젝트에 DZNEmptyDataSet을 설치해야 합니다. 이를 위해서는 CocoaPods를 사용하면 편리합니다. Podfile에 다음과 같은 내용을 추가한 후, pod install 명령어를 실행합니다.

pod 'DZNEmptyDataSet'

2. DZNEmptyDataSet 설정하기

DZNEmptyDataSet을 사용하기 위해서는 TableViewDelegate를 채택하고, 아래의 세 가지 메서드를 구현해야 합니다.

1) emptyDataSetShouldDisplay(_ scrollView: UIScrollView) -> Bool

이 메서드는 빈 상태 뷰가 표시될지 여부를 결정하는 메서드입니다. 스크롤 뷰가 비어 있을 때 true를 반환하도록 구현하면 됩니다.

2) emptyDataSetView(_ scrollView: UIScrollView) -> UIView?

이 메서드는 빈 상태 뷰를 반환하는 메서드입니다. 커스텀 디자인된 뷰를 반환하도록 구현하면 됩니다.

3) emptyDataSetWillAppear(_ scrollView: UIScrollView)

이 메서드는 빈 상태 뷰가 나타나기 전에 호출되는 메서드입니다. 필요한 경우 애니메이션을 추가하거나 뷰를 초기화하는 등의 작업을 수행할 수 있습니다.

3. 커스텀 디자인된 빈 상태 뷰 만들기

DZNEmptyDataSet에서 제공하는 빈 상태 뷰를 사용할 수도 있지만, 보다 디자인에 신경 쓸 필요가 있다면 커스텀 뷰를 만들 수도 있습니다. 예를 들어, UIImageView와 UILabel을 이용하여 이미지와 텍스트를 구성한 뷰를 만들어 사용할 수 있습니다.

func emptyDataSetView(_ scrollView: UIScrollView) -> UIView? {
    if let emptyView = UINib(nibName: "EmptyStateView", bundle: nil).instantiate(withOwner: nil, options: nil).first as? EmptyStateView {
        emptyView.imageView.image = UIImage(named: "empty_state_image")
        emptyView.textLabel.text = "데이터가 없습니다."
        return emptyView
    }
    return nil
}

위 예제에서 “EmptyStateView”는 커스텀 빈 상태 뷰의NibName입니다. 해당 xib 파일을 생성한 후, 이미지뷰와 레이블을 추가하고 IBOutlet으로 연결합니다.

참고 자료

  1. DZNEmptyDataSet GitHub 저장소
  2. DZNEmptyDataSet 문서