[swift] DZNEmptyDataSet 사용시 적용할 수 있는 다양한 스타일 옵션
기본 스타일
DZNEmptyDataSet은 UITableView나 UICollectionView와 같은 빈 데이터 상태에서 사용자에게 표시할 수 있는 여러 가지 스타일 옵션을 제공합니다.
다음은 DZNEmptyDataSet의 기본 스타일 옵션입니다:
- title: 빈 데이터 상태를 설명하는 제목의 텍스트.
- description: 빈 데이터 상태를 설명하는 본문의 텍스트.
- image: 빈 데이터 상태를 나타내는 이미지.
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 공식 문서를 참조해주세요.