[swift] DZNEmptyDataSet 사용시 적용할 수 있는 다양한 스타일 옵션

기본 스타일

DZNEmptyDataSet은 UITableView나 UICollectionView와 같은 빈 데이터 상태에서 사용자에게 표시할 수 있는 여러 가지 스타일 옵션을 제공합니다.

다음은 DZNEmptyDataSet의 기본 스타일 옵션입니다:

tableView.emptyDataSetView { emptyDataSetView in
    emptyDataSetView.titleLabel.text = "데이터가 없습니다."
    emptyDataSetView.descriptionLabel.text = "데이터를 추가해보세요."
    emptyDataSetView.imageView.image = UIImage(named: "empty_data_image")
}

커스텀 스타일

DZNEmptyDataSet을 사용하여 빈 데이터 상태를 나타내는 뷰를 완전히 커스터마이징할 수도 있습니다.

커스텀 스타일을 적용하기 위해 DZNEmptyDataSetSource와 DZNEmptyDataSetDelegate 프로토콜을 구현해야 합니다. DZNEmptyDataSetSource는 뷰의 스타일을 설정하고 DZNEmptyDataSetDelegate는 사용자 상호작용에 대한 이벤트를 처리합니다.

extension ViewController: DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
    
    func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
        let attributes: [NSAttributedString.Key: Any] = [
            .font: UIFont.systemFont(ofSize: 24),
            .foregroundColor: UIColor.red
        ]
        
        return NSAttributedString(string: "빈 데이터", attributes: attributes)
    }
    
    func description(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
        let attributes: [NSAttributedString.Key: Any] = [
            .font: UIFont.boldSystemFont(ofSize: 16),
            .foregroundColor: UIColor.darkGray
        ]
        
        return NSAttributedString(string: "데이터를 추가하세요.", attributes: attributes)
    }
    
}

텍스트 스타일

DZNEmptyDataSet을 사용하여 텍스트 스타일을 적용할 수도 있습니다.

텍스트 스타일을 설정하기 위해 다음과 같은 속성을 사용할 수 있습니다:

tableView.emptyDataSetView { emptyDataSetView in
    emptyDataSetView.titleLabel.font = UIFont.systemFont(ofSize: 24)
    emptyDataSetView.titleLabel.textColor = UIColor.red
    emptyDataSetView.descriptionLabel.font = UIFont.boldSystemFont(ofSize: 16)
    emptyDataSetView.descriptionLabel.textColor = UIColor.darkGray
}

이미지 스타일

DZNEmptyDataSet을 사용하여 이미지 스타일을 적용할 수도 있습니다.

이미지를 설정하기 위해 다음과 같은 속성을 사용할 수 있습니다:

tableView.emptyDataSetView { emptyDataSetView in
    emptyDataSetView.imageView.image = UIImage(named: "empty_data_image")
    emptyDataSetView.imageView.tintColor = UIColor.red
    emptyDataSetView.imageView.imageSize = CGSize(width: 100, height: 100)
    emptyDataSetView.imageView.contentMode = .scaleAspectFill
    emptyDataSetView.imageView.backgroundColor = UIColor.lightGray
    emptyDataSetView.imageView.cornerRadius = 10
    emptyDataSetView.imageView.borderColor = UIColor.darkGray
    emptyDataSetView.imageView.borderWidth = 1
}

버튼 스타일

DZNEmptyDataSet에서는 사용자 상호작용을 유도하기 위해 버튼 스타일도 지원합니다. 버튼을 추가하기 위해 다음과 같은 속성을 사용할 수 있습니다:

tableView.emptyDataSetView { emptyDataSetView in
    emptyDataSetView.buttonTitle = "데이터 추가"
    emptyDataSetView.buttonBackgroundColor = UIColor.blue
    emptyDataSetView.buttonTextColor = UIColor.white
    emptyDataSetView.buttonCornerRadius = 5
    emptyDataSetView.buttonBorderColor = UIColor.darkGray
    emptyDataSetView.buttonBorderWidth = 1
    emptyDataSetView.addButtonTarget(self, action: #selector(addDataButtonTapped))
}

@objc private func addDataButtonTapped() {
    // 데이터 추가 버튼이 탭되었을 때 수행할 작업
}

더 많은 정보를 원하신다면 DZNEmptyDataSet 공식 문서를 참조해주세요.