- 实际项目中,最常用到的tableView,如果请求数据为空,应该要显示无数据界面,创建的时候稍微有一点点麻烦,因为要考虑同一文件的其他方法用到,需要用全局引用,而且如果其他地方用到的话一般要自定义一个无数据界面
- 给UIView添加一个分类,使用起来就十分轻松,不用考虑引用问题,哪个view显示无数据界面,哪个view隐藏就行,有一个不好的地方就是,分类不好管理方法和属性,因此暂时只提供四个基本方法
/**
自定义无数据显示界面
@param customView 自定义界面
@param operation 点击界面操作
*/
- (void)fl_showNoDataCustomView:(UIView *_Nullable)customView operation:(void (^_Nullable)())operation;
/**
显示默认无数据界面
@param imageName 图片名
@param text 图片下方提示文字
@param operation 点击图片操作
*/
- (void)fl_showNoDataView:(NSString *_Nullable)imageName text:(NSString *_Nullable)text operation:(void (^_Nullable)())operation;
/**
显示默认无数据界面,内置默认值,可在m文件中修改
@param operation 点击图片操作
*/
- (void)fl_showNoDataViewOperation:(void (^_Nullable)())operation;
/**
隐藏无数据界面
*/
- (void)fl_hideNoDataView;
- 总结:
- 使用注意点:
- 注意block强引用问题
- 显示另一个无数据界面前必须fl_hideNoDataView当前的无数据界面
- 为了方便管理无数据界面,可以创建自定义的无数据界面,利用这个分类去显示或隐藏,使用起来就十分方便快捷啦
__weak typeof(self) weakSelf = self;
[self.view fl_showNoDataViewOperation:^{
NSLog(@"hello world");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[weakSelf.view fl_hideNoDataView];
});
}];
-
效果图
noDataView.gif
使用起来就是这么这么简单