[swift] DZNEmptyDataSet을 사용하여 빈 상태뷰의 텍스트 스타일 변경하기

빈 상태뷰는 애플리케이션에서 데이터가 없는 경우나 로딩 중인 경우에 사용자에게 보여지는 화면입니다. DZNEmptyDataSet 라이브러리는 편리하게 빈 상태뷰를 구현할 수 있도록 도와줍니다. 이 라이브러리를 사용하여 빈 상태뷰의 텍스트 스타일을 변경하는 방법에 대해 알아보겠습니다.

DZNEmptyDataSet 설치하기

먼저, Cocoapods를 사용하여 DZNEmptyDataSet을 설치해야 합니다. Podfile에 다음과 같이 추가합니다.

pod 'DZNEmptyDataSet'

그리고 터미널에서 다음 명령어를 실행하여 라이브러리를 설치합니다.

pod install

DZNEmptyDataSet 적용하기

DZNEmptyDataSet을 사용하려는 UITableView 또는 UICollectionView에 대한 확장(Extension)을 작성합니다. 다음과 같이 해당 확장에 DZNEmptyDataSetSource 및 DZNEmptyDataSetDelegate를 구현합니다.

extension YourViewController: DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
    func title(forEmptyDataSet scrollView: UIScrollView!) -> NSAttributedString! {
        let text = "데이터가 없습니다."
        let attributes: [NSAttributedString.Key: Any] = [
            .font: UIFont.systemFont(ofSize: 20, weight: .bold),
            .foregroundColor: UIColor.red
        ]
        return NSAttributedString(string: text, attributes: attributes)
    }
    
    // 다른 속성도 원하는대로 추가 가능
    
    // delegate 메소드도 구현 가능
}

위의 예시 코드에서는 title(forEmptyDataSet:) 메소드를 구현하여 빈 상태뷰의 타이틀 텍스트를 변경하였습니다. 속성을 원하는대로 설정하여 원하는 스타일을 적용할 수 있습니다.

DZNEmptyDataSet 설정하기

DZNEmptyDataSet을 사용하려는 뷰컨트롤러에서 다음과 같이 설정해야 합니다.

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.emptyDataSetSource = self
    tableView.emptyDataSetDelegate = self
    tableView.tableFooterView = UIView() // 테이블뷰의 푸터뷰를 설정하여 빈 상태뷰 부분만 보이도록 설정
}

위의 예시 코드에서는 UITableView를 사용하고 있으므로, tableView를 대상으로 emptyDataSetSource와 emptyDataSetDelegate를 설정한 후, tableFooterView를 지정하여 빈 상태뷰만 표시되도록 합니다.

결론

DZNEmptyDataSet을 사용하면 간편하게 빈 상태뷰를 구현할 수 있습니다. 이러한 빈 상태뷰의 텍스트 스타일은 NSAttributedString을 사용하여 원하는 대로 변경할 수 있습니다. 이를 통해 더 나은 사용자 경험을 제공할 수 있습니다.