受 CYLTableViewPlaceHolder 启发,将更新数据的方法尽可能的封装(不只是reload
),使得不用修改现有代码,及可非常容易的实现UITableView
和UICollectionView
的“无数据”提示,零成本。
- 不用修改
reload
- 支持更多刷新数据方法。如:
insertSections:
、deleteSections:
、insertRowsAtIndexPaths:
等等 - 使用
Auto Layout
设置placeholderView
位置,更准确,且支持横竖屏切换 - 可随时取消
placeholderView
逻辑([self.tableView kl_placeholderViewBlock:nil];
) - 支持
UICollectionView
CocoaPod
pod 'KLTableViewAndCollectionViewPlaceholder'
Carthage
github "klaus01/KLTableViewAndCollectionViewPlaceholder"
Objective-C
[self.tableView kl_placeholderViewBlock:^UIView * _Nonnull(UITableView * _Nonnull tableView) {
// 这里做空数据操作,例如弹出提示
// 禁止 TableView 滚动
tableView.scrollEnabled = NO;
// 返回无数据提示视图
return placeholderView;
} backToNormalBlock:^(UITableView * _Nonnull tableView) {
// 这里做恢复操作
// 恢复 TableView 滚动
tableView.scrollEnabled = YES;
}];
Swift
tableView.kl_placeholderViewBlock({ (tableView) -> UIView in
tableView.isScrollEnabled = false
return placeholderView
}, backToNormalBlock: { (tableView) in
tableView.isScrollEnabled = true
})
Centipede is released under the MIT license. See LICENSE for details.