IOS开发- UITableView 无数据时,显示“暂无数据”背景的实现
2017-11-16 14:07
543 查看
需求:
当UITableView 无数据时,当前耳界面的背景界面显示“暂无数据”。
方法1:
我们可以用 Objective-C 的分类 (Catergory) 来解决这类问题。
具体实现过程:
步骤1. 我们对UITableView进行类扩展
操作:File > New > File > IOS > Objective-C File > Next > File:EmptyTipLabel File Type:Catergory Class:UITableView > Next
代码:
步骤2:导入头文件
在UITableView的数据源方法中进行调用就可以了。如果你的TableView有多个Section,那么可以在-
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView方法中进行调用。
如果你的TableView只有一个分组,那么可以在-
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 中进行调用
方法2
:继承UITableView,再新类中集成图片和文字
当UITableView 无数据时,当前耳界面的背景界面显示“暂无数据”。
方法1:
我们可以用 Objective-C 的分类 (Catergory) 来解决这类问题。
具体实现过程:
步骤1. 我们对UITableView进行类扩展
操作:File > New > File > IOS > Objective-C File > Next > File:EmptyTipLabel File Type:Catergory Class:UITableView > Next
代码:
// .h文件 @import UIKit; @interface UITableView (EmptyData) //添加一个方法 - (void) tableViewDisplayWitMsg:(NSString *) message ifNecessaryForRowCount:(NSUInteger) rowCount; @end /// .m文件 #import "UITableView+EmptyData.h" @implementation UITableView (EmptyData) - (void) tableViewDisplayWitMsg:(NSString *) message ifNecessaryForRowCount:(NSUInteger) rowCount { if (rowCount == 0) { // Display a message when the table is empty // 没有数据的时候,UILabel的显示样式 UILabel *messageLabel = [UILabel new]; messageLabel.text = message; messageLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; messageLabel.textColor = [UIColor lightGrayColor]; messageLabel.textAlignment = NSTextAlignmentCenter; [messageLabel sizeToFit]; self.backgroundView = messageLabel; self.separatorStyle = UITableViewCellSeparatorStyleNone; } else { self.backgroundView = nil; self.separatorStyle = UITableViewCellSeparatorStyleSingleLine; } } @end
步骤2:导入头文件
#import "UITableView+EmptyData.h"
在UITableView的数据源方法中进行调用就可以了。如果你的TableView有多个Section,那么可以在-
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView方法中进行调用。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { /** * 如果没有数据的时候提示用户的信息 */ [tableView tableViewDisplayWitMsg:@"没有查询到相对应的商品" ifNecessaryForRowCount:self.dataSource.count]; return [self.dataSource count]; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 1; }
如果你的TableView只有一个分组,那么可以在-
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 中进行调用
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { [tableView tableViewDisplayWitMsg:@"没有查询到相对应的商品" ifNecessaryForRowCount:self.dataSource.count]; return self.dataSource.count; }
方法2
:继承UITableView,再新类中集成图片和文字
#import <UIKit/UIKit.h> #import "Const.h" @interface WFEmptyTableView : UITableView @property (nonatomic, assign) BOOL showEmptyTipView; // 是否显示背景提示文字 @property (nonatomic, assign) NSInteger vOffset; @property (nonatomic, copy) NSString *tipString; // 提示文字 @property (nonatomic, copy) NSString *tipImageName; // 提示图片 @end
相关文章推荐
- iOS开发>>>UITableview实现更多数据显示方法
- iOS开发UI篇—实现UItableview控件数据刷新
- 详解iOS开发中UItableview控件的数据刷新功能的实现
- iOS开发UI篇—实现UItableview控件数据刷新
- iOS开发UI篇—实现UItableview控件数据刷新
- IOS开发学习笔记028-UITableView单组数据显示代码优化
- iOS开发UI篇—实现UItableview控件数据刷新
- iOS开发UI篇—实现UItableview控件数据刷新
- iOS开发UI篇—实现UItableview控件数据刷新
- iOS开发UI篇—实现UItableview控件数据刷新
- iOS开发UI基础—22实现UItableview控件数据刷新
- IOS开发UI篇—实现UItableview控件数据刷新
- iOS开发UI篇—实现UItableview控件数据刷新
- (5) iphone 开发 在表视图(UITableView) 中利用UISearchBar实现数据的搜索,视图的多功能化
- 【iOS开发-59】LOL案例:单组tabView、alertView样式、实现监听,以及用reloadData数据刷新
- iOS开发标记——各个ViewController页面数据交互,通过NSUserDefaults实现。
- [ios开发技巧之]UIPickerView的数据循环显示
- IOS UITableView 实现LOL数据展示
- ios-day13-01(私人通讯录。控制器之间的数据传递、保存密码和自动登录的实现、普通对象的归档、UITableView的局部刷新和向左滑动删除功能等等)
- iOS笔记:查询结果为空,显示无数据的方法(UITableView Display No Data)