[swift] DZNEmptyDataSet을 사용하여 빈 상태뷰의 레이아웃 변경하기
먼저, DZNEmptyDataSet을 프로젝트에 추가해야 합니다. CocoaPods를 사용하고 있다면 Podfile에 다음을 추가합니다.
pod 'DZNEmptyDataSet'
그리고 pod install
명령어를 실행하여 라이브러리를 설치합니다.
다음으로, UITableViewDelegate
또는 UICollectionViewDelegate
를 구현하는 클래스에서 다음 메소드들을 구현해야 합니다.
func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
let attributes = [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 18),
NSAttributedString.Key.foregroundColor: UIColor.gray]
return NSAttributedString(string: "데이터가 없습니다", attributes: attributes)
}
func description(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
let attributes = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 14),
NSAttributedString.Key.foregroundColor: UIColor.lightGray]
return NSAttributedString(string: "데이터를 불러올 수 없습니다.", attributes: attributes)
}
func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
return UIImage(named: "empty_state_image")
}
func buttonTitle(forEmptyDataSet scrollView: UIScrollView, for state: UIControl.State) -> NSAttributedString? {
let attributes = [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 16),
NSAttributedString.Key.foregroundColor: UIColor.blue]
return NSAttributedString(string: "다시 시도하기", attributes: attributes)
}
func emptyDataSet(_ scrollView: UIScrollView, didTap button: UIButton) {
// 버튼을 눌렀을 때 실행되는 동작을 구현합니다.
// 데이터를 다시 로딩하거나 관련된 작업을 수행할 수 있습니다.
}
위의 메소드들은 각각 상태뷰에 보여줄 제목, 설명, 이미지, 버튼의 타이틀을 지정합니다. emptyDataSet(_:didTap:)
메소드는 버튼을 눌렀을 때 실행될 동작을 구현하는 곳입니다.
또한, UITableViewDelegate
또는 UICollectionViewDelegate
를 채택한 클래스에 다음 코드를 추가하여 DZNEmptyDataSet과 관련된 설정을 해 줍니다.
tableView.emptyDataSetDelegate = self
tableView.emptyDataSetSource = self
이제 빈 상태뷰의 레이아웃을 변경하기 위한 모든 준비가 되었습니다. 원하는 디자인으로 상태뷰의 제목, 설명, 이미지, 버튼을 설정하고, 동작을 구현하면 됩니다.
DZNEmptyDataSet에 대한 더 자세한 내용은 아래의 링크를 참고해 주세요.
- 라이브러리 GitHub 링크: DZNEmptyDataSet
- Cocoapods 링크: DZNEmptyDataSet