[swift] DZNEmptyDataSet을 사용하여 빈 상태뷰의 배경색 변경하기

많은 앱에서 데이터가 없는 빈 상태일 때, 빈 상태뷰를 보여줄 필요가 있습니다. DZNEmptyDataSet 라이브러리는 편리하게 이러한 빈 상태뷰를 추가할 수 있는 기능을 제공합니다. 이번에는 DZNEmptyDataSet을 사용하여 빈 상태뷰의 배경색을 변경하는 방법에 대해 알아보겠습니다.

먼저, DZNEmptyDataSet을 프로젝트에 추가해야 합니다. Podfile에 아래와 같이 추가한 뒤, pod install 명령어를 실행합니다.

pod 'DZNEmptyDataSet'

1. DZNEmptyDataSet delegate 구현하기

DZNEmptyDataSet을 사용하기 위해 먼저 delegate 메서드를 구현해야 합니다. 뷰컨트롤러나 테이블뷰의 delegate로 지정해야 합니다.

class ViewController: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // DZNEmptyDataSet delegate 지정
        tableView.emptyDataSetSource = self
        tableView.emptyDataSetDelegate = self
    }

    // 빈 상태뷰를 커스텀하기 위한 delegate 메서드 구현
    func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
        // 빈 상태뷰에 표시할 이미지 반환
        return UIImage(named: "empty_state_image")
    }
  
    func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
        // 빈 상태뷰에 표시할 타이틀 반환
        let attributes: [NSAttributedString.Key: Any] = [
            .font: UIFont.boldSystemFont(ofSize: 18),
            .foregroundColor: UIColor.gray
        ]
        return NSAttributedString(string: "No data", attributes: attributes)
    }

    // 배경색을 변경하기 위한 delegate 메서드 구현
    func backgroundColor(forEmptyDataSet scrollView: UIScrollView) -> UIColor? {
        // 빈 상태뷰의 배경색을 반환
        return UIColor.blue
    }
  
    // 배경색의 그라데이션을 변경하기 위한 delegate 메서드 구현
    func backgroundColorGradient(forEmptyDataSet scrollView: UIScrollView) -> UIColor? {
        // 빈 상태뷰의 배경색 그라데이션을 반환
        return UIColor.purple
    }
}

2. 배경색 변경 확인하기

위에서 구현한 delegate 메서드를 통해 빈 상태뷰의 배경색을 변경할 수 있습니다. 이제 앱을 실행하고 데이터가 없는 상태를 확인해 보세요. 배경색이 이전과 다른 것을 볼 수 있을 것입니다.

DZNEmptyDataSet 라이브러리를 이용하면 빈 상태뷰를 쉽게 사용할 수 있습니다. 추가적으로 다양한 delegate 메서드를 활용하여 더 많은 커스터마이징이 가능하니, 사용법을 좀 더 찾아보시기 바랍니다.

참고 자료