首先附上github地址
对于iOS开发者来说,UITableView是在开发过程中使用比较多的一个控件。如果UITableView表视图没有数据,页面一片空白,不是一个很好的用户体验。我们都希望在数据源为空的时候,给用户一些相应的提示,提高交互效果。
DZNEmptyDataSet就如同福音,适用于每一个iOS项目,只要遵DZNEmptyDataSetSource、DZNEmptyDataSetDelegate这两个协议,在UITableView和UICollectionView中实现对应的代理方法就OK啦。
可以设置图片和文字,添加按钮处理相应的点击事件。
1> 自定义视图
- (UIView*)customViewForEmptyDataSet:(UIScrollView*)scrollView;
实现上面👆的方法,当tableView数据源为空时,列表就会展示自定义视图。但是要注意⚠️:这个视图不回响应任何点击事件,如果有点击需求(例如点击刷新列表)请往下看。
2> 自定义按钮
- (NSAttributedString*)buttonTitleForEmptyDataSet:(UIScrollView*)scrollView forState:(UIControlState)state;
- (void)emptyDataSet:(UIScrollView*)scrollView didTapButton:(UIButton*)button
分别实现上面👆两个方法。第一个方法,需要返回一个富文本的按钮标题;第二个方法就是处理按钮的点击事件,在这个方法里去实现刷新的方法即可。
3> 自定义提示语
- (NSAttributedString*)descriptionForEmptyDataSet:(UIScrollView*)scrollView;
实现上面👆的方法,当tableView数据源为空时,列表就会展示这行提示语,类似于方法1。而且使用这个方法,也不会响应点击事件。方法3和方法2也可以结合使用,满足其他的复杂需求。
其他
以上主要是常用的方法,更多API可以自己尝试使用一下。另外,需要刷新视图的时候,直接调用tableview或者collectionview的reload方法即可。