[swift] DZNEmptyDataSet을 사용하여 빈 상태뷰에 카운터 텍스트 추가하기

빈 상태뷰는 앱의 사용자 경험을 향상시키기 위해 중요합니다. 이 뷰는 데이터가 없거나 로딩 중일 때 보여주는 피드백을 제공합니다. DZNEmptyDataSet은 이러한 빈 상태뷰를 만들기 위한 유용한 라이브러리 중 하나입니다.

이번에는 DZNEmptyDataSet을 사용하여 빈 상태뷰에 카운터 텍스트를 추가하는 방법을 알아보겠습니다. 카운터 텍스트는 로딩 중이거나 데이터가 없을 때 화면에 표시되는 숫자로, 일종의 진행 상황 표시기로 사용됩니다.

1. DZNEmptyDataSet 라이브러리 설치하기

먼저, 프로젝트에 DZNEmptyDataSet 라이브러리를 추가해야 합니다.

CocoaPods를 사용하는 경우, Podfile에 다음과 같이 라이브러리를 추가합니다.

pod 'DZNEmptyDataSet'

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

pod install

2. 빈 상태뷰에 카운터 텍스트 추가하기

DZNEmptyDataSet을 사용하여 빈 상태뷰에 카운터 텍스트를 추가하는 방법은 간단합니다. 먼저, DZNEmptyDataSet을 채택한 후, 표시할 텍스트를 반환하는 메소드를 구현해야 합니다.

import DZNEmptyDataSet

class MyViewController: UIViewController, DZNEmptyDataSetSource {

    // ...

    func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
        let string = "No data available"
        let attributes: [NSAttributedString.Key: Any] = [
            .font: UIFont.boldSystemFont(ofSize: 18),
            .foregroundColor: UIColor.gray
        ]
        return NSAttributedString(string: string, attributes: attributes)
    }

    // ...
}

위의 예제에서는 “No data available” 텍스트를 사용하며, 폰트와 색상을 지정하여 스타일을 변경했습니다.

3. 빈 상태뷰에 카운터 텍스트 표시하기

이제, 빈 상태뷰에 카운터 텍스트를 표시하는 방법을 알아보겠습니다. 이를 위해 DZNEmptyDataSetDelegate 프로토콜을 채택하고, 적절한 메소드를 구현해야 합니다.

class MyViewController: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {

    // ...

    func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
        return UIImage(named: "emptyStateImage")
    }

    func description(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
        let count = 10 // 표시할 카운터 숫자
        let string = "Loading \(count) items"
        let attributes: [NSAttributedString.Key: Any] = [
            .font: UIFont.systemFont(ofSize: 14),
            .foregroundColor: UIColor.lightGray
        ]
        return NSAttributedString(string: string, attributes: attributes)
    }

    // ...
}

위의 예제에서는 특정 숫자를 가진 카운터 텍스트를 “Loading 10 items”라는 형식으로 표시합니다. 이를 위해 description(forEmptyDataSet:) 메소드를 구현하고, 원하는 형식으로 문자열을 생성해야 합니다.

결론

DZNEmptyDataSet을 사용하여 빈 상태뷰에 카운터 텍스트를 추가하는 방법을 알아보았습니다. 이를 통해 사용자에게 더 나은 피드백을 제공하고, 앱의 사용자 경험을 향상시킬 수 있습니다. 빈 상태뷰를 보다 직관적이고 매력적으로 만들려면, 해당 라이브러리의 다양한 기능과 프로퍼티를 살펴보시기 바랍니다.

더 자세한 정보는 DZNEmptyDataSet 공식 GitHub 페이지에서 확인할 수 있습니다.