[swift] DZNEmptyDataSet을 사용하여 빈 상태뷰의 버튼 텍스트 스타일 변경하기

때로는 앱의 빈 상태뷰에 버튼을 추가하거나 버튼의 텍스트 스타일을 변경해야 할 수 있습니다. 이때 DZNEmptyDataSet 라이브러리를 사용하면 편리하게 구현할 수 있습니다. 이번 글에서는 DZNEmptyDataSet을 사용하여 빈 상태뷰의 버튼 텍스트 스타일을 변경하는 방법에 대해 알아보겠습니다.

DZNEmptyDataSet 라이브러리 설치하기

먼저, CocoaPods를 사용하여 DZNEmptyDataSet 라이브러리를 프로젝트에 설치해야 합니다. Podfile에 다음과 같이 라이브러리를 추가합니다.

pod 'DZNEmptyDataSet'

그리고 터미널에서 다음 명령어를 실행하여 라이브러리를 설치합니다.

$ pod install

이제 DZNEmptyDataSet 라이브러리를 사용할 준비가 되었습니다.

빈 상태뷰에 버튼 텍스트 스타일 변경하기

DZNEmptyDataSet을 사용하여 빈 상태뷰에 버튼 텍스트 스타일을 변경하려면 다음과 같은 단계를 따르면 됩니다.

  1. 먼저, 빈 상태뷰를 사용하는 View Controller 클래스에 DZNEmptyDataSetSource와 DZNEmptyDataSetDelegate 프로토콜을 채택합니다.
class ViewController: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
    // ...
}
  1. viewDidLoad() 함수에서 DZNEmptyDataSetDelegate와 DZNEmptyDataSetSource를 설정합니다.
override func viewDidLoad() {
    super.viewDidLoad()
    
    tableView.emptyDataSetDelegate = self
    tableView.emptyDataSetSource = self
}
  1. DZNEmptyDataSetSource 프로토콜의 buttonTitle(forEmptyDataSet:) 함수를 구현하여 버튼의 텍스트를 반환합니다.
func buttonTitle(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
    let title = "Custom Button Title"
    let attributes: [NSAttributedString.Key: Any] = [
        .font: UIFont.systemFont(ofSize: 18),
        .foregroundColor: UIColor.red
    ]
    return NSAttributedString(string: title, attributes: attributes)
}

위의 코드에서는 “Custom Button Title”이라는 텍스트와 폰트 크기 18, 빨간색의 텍스트 색상을 가진 NSAttributedString을 반환합니다. 이렇게하면 빈 상태뷰에 원하는 버튼 텍스트를 설정할 수 있습니다.

  1. 원하는 버튼 동작을 구현하기 위해 DZNEmptyDataSetDelegate 프로토콜의 emptyDataSet(_:didTapButton:) 함수를 구현합니다.
func emptyDataSet(_ scrollView: UIScrollView, didTapButton button: UIButton) {
    // 버튼이 탭되었을 때의 동작을 구현합니다.
    // 예: 새로운 항목을 추가하기 위한 화면으로 이동하거나, 다른 동작을 수행합니다.
}

위의 코드에서는 버튼이 탭되었을 때 실행할 동작을 구현합니다. 예를 들어, 버튼을 탭하면 새로운 항목을 추가하기 위한 화면으로 이동하거나, 다른 동작을 수행할 수 있습니다.

이제 앱을 실행하고 빈 상태뷰를 확인해보면 버튼의 텍스트 스타일이 변경되었음을 알 수 있습니다.

결론

DZNEmptyDataSet을 사용하여 빈 상태뷰의 버튼 텍스트 스타일을 변경하는 방법을 배웠습니다. 이제 앱의 UX를 개선하기 위해 빈 상태뷰에 다양한 커스터마이징을 적용할 수 있습니다. 이외의 다른 설정 및 기능에 대해서는 DZNEmptyDataSet 공식 문서를 참조하시기 바랍니다.

참고 자료: