[swift] DZNEmptyDataSet을 사용하여 빈 상태뷰에서 연결된 페이지로 이동하기
iOS 앱에서는 데이터가 없는 상황에서 사용자에게 빈 상태뷰를 제공하는 것이 중요합니다. DZNEmptyDataSet은 UITableView나 UICollectionView에서 이러한 빈 상태뷰를 구현할 수 있는 라이브러리입니다. 이번 블로그 포스트에서는 DZNEmptyDataSet을 사용하여 빈 상태뷰에서 연결된 페이지로 이동하는 방법을 알아보겠습니다.
DZNEmptyDataSet이란?
DZNEmptyDataSet은 Objective-C와 Swift를 모두 지원하는 빈 상태뷰 라이브러리입니다. TableView 또는 CollectionView에서 사용자에게 데이터가 없는 경우 적절한 메시지나 이미지를 표시하고 사용자 경험을 향상시킬 수 있습니다.
DZNEmptyDataSet 추가하기
- Cocoapods을 사용하여 DZNEmptyDataSet을 프로젝트에 추가합니다.
Podfile
에 다음과 같이 라이브러리를 추가합니다.
pod 'DZNEmptyDataSet', '~> 1.9.0'
- 다음 명령어를 터미널에 입력하여 Cocoapods을 설치합니다.
pod install
UITableView
나UICollectionView
를 사용하는 ViewController에 DZNEmptyDataSet을 적용합니다.
import DZNEmptyDataSet
class MyViewController: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// DZNEmptyDataSet의 대리자 등록
tableView.emptyDataSetDelegate = self
tableView.emptyDataSetSource = self
}
// DZNEmptyDataSet의 뷰 커스터마이징
func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
let text = "데이터가 없습니다."
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.boldSystemFont(ofSize: 18.0),
.foregroundColor: UIColor.gray
]
return NSAttributedString(string: text, attributes: attributes)
}
func description(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
let text = "데이터를 추가하려면 '+' 버튼을 눌러주세요."
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.systemFont(ofSize: 16.0),
.foregroundColor: UIColor.lightGray
]
return NSAttributedString(string: text, attributes: attributes)
}
func buttonImage(forEmptyDataSet scrollView: UIScrollView, for state: UIControl.State) -> UIImage? {
return UIImage(named: "add_button")
}
func emptyDataSet(_ scrollView: UIScrollView, didTapButton button: UIButton) {
// '+ 버튼'이 탭되었을 때의 동작을 구현합니다.
}
func emptyDataSetShouldDisplay(_ scrollView: UIScrollView) -> Bool {
// 데이터가 없을 때 빈 상태뷰를 표시할지 여부를 반환합니다.
// 데이터가 있는지 여부에 따라 true 또는 false를 반환하면 됩니다.
return true
}
}
- 마지막으로, 연결된 페이지로 이동하려면
emptyDataSet(_:didTapButton:)
메서드를 구현하여 원하는 동작을 추가합니다.
func emptyDataSet(_ scrollView: UIScrollView, didTapButton button: UIButton) {
let nextPageViewController = NextPageViewController()
self.navigationController?.pushViewController(nextPageViewController, animated: true)
}
이제 DZNEmptyDataSet을 사용하여 빈 상태뷰에서 연결된 페이지로 이동하는 기능을 구현할 수 있습니다.
더 많은 DZNEmptyDataSet의 기능을 알아보려면 공식 GitHub 저장소를 참고하세요.
Happy coding!