近期在整理過去一年代碼,順便安利分享一些小輪子.
EmptyPage - Github
一個UITableView / UICollectionView擴展,用于在視圖沒有內(nèi)容顯示的時候顯示空白頁.
示例

empty1.gif
默認提供了三套樣式(純文字/純圖片/標(biāo)準)

三套樣式.png
安裝
- 使用cocoapods安裝
# 如果采用自定義樣式,只需要引入 Core
pod 'EmptyPage/Core'
# 如果預(yù)設(shè)樣式能夠滿足需求, 可以使用一下形式引入
pod 'EmptyPage'
pod 'EmptyPage/Standard'
# 后期加入的通用樣式將以擴展的形式加入到以下倉庫中
pod 'EmptyPage/Spec'
使用
- 由于swift 4.0 取消了
'initialize'函數(shù),所以需要在合適的時機執(zhí)行以下函數(shù)才可以正常工作:
EmptyPage.begin()
-
只引入
'EmptyPage/Core':適合構(gòu)建有豐富特性的自定義樣式.
// 需要自定義空白頁樣式
let emptyView = EmptyView()
// 直接給emptyView屬性賦值,會在reloadData的時候判斷是否需要顯示
collectionView.emptyView = emptyView
// 調(diào)用reloadData/delete/insert才會判斷是否需要顯示
collectionView.reloadData()
- 引入
pod 'EmptyPage/Standard':
默認提供了3套默認樣式,純文本樣式/純圖片樣式/標(biāo)準樣式(圖片+標(biāo)題+描述+按鈕形式)
- 并提供了豐富的設(shè)置函數(shù).
- 并且大部分屬性都是能直接訪問修改.方便個人定制.
- 使用EmptyPageView接口實現(xiàn):
// 圖片(支持單張與多張) + 標(biāo)題 + 描述 + 一個按鈕 的樣式
let emptyView: EmptyPageView = .standard(images: [UIImage(named: "empty")!],
title: "標(biāo)題",
text: "描述文本",
btnTitle: "按鈕標(biāo)題") {
print("按鈕事件")
}
// 設(shè)置
tableView.setEmpty(view: emptyView) // 等價于 tableView.emptyView = emptyView
- 自定義默認樣式
// 獲取標(biāo)準樣式
let view = EmptyPageView.ContentView.standard
// 自定義配置標(biāo)準樣式
view.configImageView(images: [UIImage(named: "empty-1002")!])
view.titleLabel.text = "Connection failure"
view.button.setTitle("TRY AGAIN", for: .normal)
// 將標(biāo)準樣式條添加至背景View上(提供了約束設(shè)置的功能)
let emptyView: EmptyPageView = .mix(view: view)
// 設(shè)置
tableView.setEmpty(view: emptyView) // 等價于 tableView.emptyView = emptyView
-
引入
pod 'EmptyPage'或者pod 'EmptyPage/Spec':目前是空的,會在后期加入一些更加通用的樣式,提高開發(fā)效率??.