# TRRefresh **Repository Path**: iamchtj/T_TableViewRefresh ## Basic Information - **Project Name**: TRRefresh - **Description**: 对MJRefresh的二次封装 - **Primary Language**: Objective-C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-06-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #T_TableViewRefresh /** * 对MJRefresh的二次封装,使用时首先设置代理,然后实现协议方法 - (void)tableViewWillRefreshHeader:(UITableView *)tableView; - (void)tableViewWillRefreshFooter:(UITableView *)tableView; 这两个方法中分别要写下拉刷新要执行的逻辑和上拉加载的逻辑。 执行逻辑: 1.当第一次加载时,不会首先添加footer,而是等待数据接收下来时,再决定是不是需要添加footer, 需要在解析数据完成的时候,即将数据模型添加到数据源数组后,调用这个方法 - (void)resetFooterWithCountOfResponse:(NSInteger)responseCount countOfdataArray:(NSInteger)count rows:(NSInteger)rows; 2.当上拉加载时,会临时隐藏header; 3.可以添加无数据提示视图和无网络数据视图,具体视图的样式需要根据需求手动实现,在适当的地方调用这两个方法,不需要手动移除; - (void)addNoDataView; - (void)addErrorView; */ @protocol RefreshDelegate - (void)tableViewWillRefreshHeader:(UITableView *)tableView; - (void)tableViewWillRefreshFooter:(UITableView *)tableView; @end @interface UITableView (Refresh) @property (nonatomic, weak) id refreshDelegate; @property (nonatomic, strong) UIView *noDataView; @property (nonatomic, strong) UIView *errorView; /// 添加上拉加载和下拉刷新,协议名称 TTTableViewDelegate - (void)addRefresh; /// 添加下拉刷新 - (void)addHeader; /// 添加上拉加载 - (void)addFooter; /// 移除上拉加载 - (void)removeFooter; /// 开始刷新 - (void)beginRefreshing; /// 停止刷新 - (void)endRefreshing; /// 当没有数据的时候添加显示没有数据的视图 - (void)addNoDataView; /// 移除没有数据的试图 - (void)removeNoDataView; /// 当网络错误的时候添加显示没有数据的视图 - (void)addErrorView; /// 移除网络错误的试图 - (void)removeErrorView; /** * 重新设置控件,用于数据加载完毕后,是否移除Footer * * @param responseCount 请求下来数据的数量 * @param count 数据源中数据的数量 * @param rows 每次请求下来的数量 */ - (void)resetFooterWithCountOfResponse:(NSInteger)responseCount countOfdataArray:(NSInteger)count rows:(NSInteger)rows; @end