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

빈 상태뷰는 사용자에게 데이터가 없는 상황을 보여주는데 사용됩니다. DZNEmptyDataSet은 iOS 앱에서 빈 상태뷰를 손쉽게 구현할 수 있는 라이브러리입니다. 이번에는 DZNEmptyDataSet을 사용하여 빈 상태뷰의 텍스트 색상을 변경하는 방법을 알아보겠습니다.

DZNEmptyDataSet 설정하기

DZNEmptyDataSet을 사용하기 위해서는 먼저 해당 뷰 컨트롤러에 DZNEmptyDataSetSource와 DZNEmptyDataSetDelegate 프로토콜을 채택해야 합니다. 아래와 같이 뷰 컨트롤러 클래스에 프로토콜을 추가합니다.

import DZNEmptyDataSet

class ViewController: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {

그리고 viewDidLoad() 메소드에서 DZNEmptyDataSet의 설정을 해주어야 합니다.

override func viewDidLoad() {
    super.viewDidLoad()
    
    tableView.emptyDataSetSource = self
    tableView.emptyDataSetDelegate = self
}

텍스트 색상 변경하기

DZNEmptyDataSet을 사용하여 텍스트 색상을 변경하려면 다음 메소드를 구현해야 합니다.

func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
    let attributes: [NSAttributedString.Key: Any] = [
        .font: UIFont.systemFont(ofSize: 18),
        .foregroundColor: UIColor.red
    ]
    return NSAttributedString(string: "데이터 없음", attributes: attributes)
}

위의 메소드는 빈 상태뷰에 표시될 제목의 텍스트와 속성을 정의해주는 메소드입니다. 여기서는 UIFont와 UIColor를 사용하여 텍스트의 폰트와 색상을 변경했습니다.

다음으로, UITableViewDelegate 프로토콜의 메소드를 구현하여 테이블 뷰에서 표시될 빈 상태뷰의 글자 정렬을 설정해줍니다.

func verticalOffset(forEmptyDataSet scrollView: UIScrollView) -> CGFloat {
    return -50
}

위의 메소드는 빈 상태뷰의 수직 정렬을 조정하는 메소드입니다. 여기서는 상단으로 50포인트만큼 올려서 정렬하도록 설정했습니다.

결론

위의 방법을 사용하여 DZNEmptyDataSet을 통해 빈 상태뷰의 텍스트 색상을 변경할 수 있습니다. DZNEmptyDataSet의 다양한 설정을 이용하면 더 많은 커스터마이징이 가능하니 필요한 경우에는 공식 문서를 참고해보시기 바랍니다.

참고 자료