[swift] DZNEmptyDataSet을 사용하여 커스텀 디자인된 버튼 추가하기

앱에서 빈 상태를 나타내기 위해 DZNEmptyDataSet 라이브러리를 사용한다면, 더욱 사용자 친화적인 경험을 제공할 수 있습니다. 이 라이브러리를 사용하면 테이블 뷰나 컬렉션 뷰 등의 뷰에 데이터가 없을 때, 커스텀 디자인된 버튼을 추가할 수 있습니다.

1. DZNEmptyDataSet 라이브러리 추가하기

먼저, 프로젝트에 DZNEmptyDataSet 라이브러리를 추가해야 합니다. 가장 간편한 방법은 Cocoapods을 사용하는 것입니다. Podfile에 다음 줄을 추가하고, pod install을 실행하여 라이브러리를 설치합니다.

pod 'DZNEmptyDataSet'

2. DZNEmptyDataSet 설정하기

DZNEmptyDataSet을 사용하기 위해 먼저 뷰 컨트롤러를 DZNEmptyDataSetSource와 DZNEmptyDataSetDelegate로 채택합니다.

class YourViewController: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
    // ...
}

이후에 DZNEmptyDataSetSource의 메소드를 구현하여 뷰의 빈 상태를 커스텀할 수 있습니다. 버튼을 포함한 뷰를 반환하는 customViewForEmptyDataSet 메소드를 다음과 같이 추가합니다.

func customViewForEmptyDataSet(scrollView: UIScrollView!) -> UIView! {
    let emptyStateView = UIView(frame: CGRect(x: 0, y: 0, width: scrollView.bounds.size.width, height: scrollView.bounds.size.height))
    
    let button = UIButton(type: .system)
    button.setTitle("버튼", for: .normal)
    button.frame = CGRect(x: emptyStateView.bounds.midX - 50, y: emptyStateView.bounds.midY - 25, width: 100, height: 50)
    button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
    
    emptyStateView.addSubview(button)
    
    return emptyStateView
}

@objc func buttonTapped() {
    // 버튼을 눌렀을 때 수행할 동작
}

버튼이 추가된 customView를 반환하고, 버튼의 액션도 구현했습니다.

3. DZNEmptyDataSet 적용하기

원하는 뷰에 DZNEmptyDataSet을 적용하기 위해 다음과 같이 코드를 추가합니다.

yourTableView.emptyDataSetSource = self
yourTableView.emptyDataSetDelegate = self
yourTableView.reloadData()

따라서 해당 테이블 뷰에서 데이터가 없을 때, customViewForEmptyDataSet에서 반환한 뷰가 표시됩니다.

마무리

이제 DZNEmptyDataSet을 사용하여 커스텀 디자인된 버튼을 뷰에 추가하는 방법을 알게 되었습니다. 이를 활용하여 앱 사용자에게 더 나은 경험을 제공할 수 있습니다.

더 자세한 정보 및 다른 기능에 대해서는 DZNEmptyDataSet Github 페이지를 참고해주세요.