MACTableView 一键集成空白文字、图片、上拉下拉事件

来源:互联网 发布:windows10如何下载软件 编辑:程序博客网 时间:2024/05/22 06:40

MACTableView

传送门:https://github.com/azheng51714/MACTableView

Projects using this library

对 UITableView 空白页文字提示、空白页图片、上拉下拉事件等进行了高度封装,使用简单高效,并命名为MACTableView, 欢迎star & issue

常规刷新1
常规刷新2
配置参数

Features

  • 支持 多种空白样式:包括是否显示主标题、副标题、空白图以及是否支持上拉下拉代理事件等;
  • 基于 MJRefresh & DZNEmptyDataSet 集成设计;
  • 支持 Storyboard & Xib;
  • 支持 iOS 6 及以上;
  • 支持 iPhone & iPad.

Installation

cocoapods

 pod 'MACTableView', '~> 1.1.0'

Import

导入相关头文件

#import "MACTableView.h"

How to use

  • First Step 初始化 MACTableView ;
@interface ViewController ()<MACTableViewDelegate>{}@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // self.tableView =  [[MACTableView alloc] initWithFrame:self.view.bounds];     self.tableView.macTableViewDelegate = self;}
  • Second Step 设置 MACTableView属性 并开始加载;
-(void)setUp{    _tableView.emptyImage = self.emptyImage;    _tableView.emptyColor = self.emptyColor;    _tableView.emptyAtrtibutedTitle = self.emptyTitle;    _tableView.emptyAtrtibutedSubtitle = self.descriptionTitle;    [_tableView beginLoading];  } 
  • Final Step 处理上拉下拉代理事件
#pragma mark MACTableViewDelegate-(void)loadDataRefreshOrPull:(MACRefreshState)state{   if(state == MACRefreshing){//下拉刷新     //do something   }else {//加载更多     // do other thing   }  //异步(网络访问)请求后执行 [self.tableView endLoading] 结束刷新}
  • Additional Remark 对于有自定义 RefreshHeader 需求的,新建一个继承自 MACRefreshGifHeader 的类,设置相关属性,重写 load 方法即可
-(void)prepare{    [super prepare];    // 设置普通状态的动画图片    [self setImages:idleImages forState:MJRefreshStateIdle];    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)    [self setImages:refreshingImages forState:MJRefreshStatePulling];    // 设置正在刷新状态的动画图片    [self setImages:refreshingImages forState:MJRefreshStateRefreshing];    // 隐藏时间    //self.lastUpdatedTimeLabel.hidden = YES;    // 隐藏刷新状态    //self.stateLabel.hidden = YES;}+ (void)load{    NSLog(@"重写 load 方法, 注册 MACRefreshGifHeader,即可实现自定义RefreshHeader,无需其他操作");    [super registerMACRefresh];}

自定义刷新1
自定义刷新2

MACTableView

这里对相关的参数变量、枚举类型、代理以及执行方法进行了详细的说明,您只需要根据具体情况设置相关属性,执行相应操作即可。

#import <UIKit/UIKit.h>typedef NS_ENUM(NSInteger, MACRefreshState) {    MACRefreshing = 0, /** 下拉刷新的状态 */    MACPulling,        /** pull 加载更多刷新中的状态 */};typedef NS_ENUM(NSInteger,MACCanLoadState){    MACCanLoadNone = 0,/**不支持下拉和加载更多*/    MACCanLoadRefresh, /**只支持下拉刷新*/    MACCanLoadAll,     /** 同时支持下拉和加载更多*/};@protocol MACTableViewDelegate <NSObject>@optional/**@param state MACRefreshing 下拉刷新 MACPulling 为 Pull 加载更多*/-(void)loadDataRefreshOrPull:(MACRefreshState)state;@end@interface MACTableView : UITableView<NSCoding>@property (nonatomic,weak) id<MACTableViewDelegate> macTableViewDelegate;//MACTableView delegate/** 是否展示空白页 默认为YES*/@property(nonatomic,assign,getter = isShowEmpty)BOOL showEmpty;/** MACTableView 加载支持,默认同时支持下拉和加载更多*/@property (nonatomic,assign) IBInspectable MACCanLoadState macCanLoadState;/**空白页的标题 默认为 “" 为空,不显示*/@property(nonatomic,copy) IBInspectable NSString *emptyTitle;/**  空白页的副标题 默认为 “" 为空,不显示*/@property(nonatomic,copy) IBInspectable NSString *emptySubtitle;/**  空白页展位图名称 默认为 nil,不显示*/@property(nonatomic,strong) IBInspectable UIImage *emptyImage;/**  空白页背景颜色,默认白色*/@property(nonatomic,strong) IBInspectable UIColor *emptyColor;/**空白页的标题 默认为 nil ,不显示*/@property(nonatomic,copy) IBInspectable NSAttributedString *emptyAtrtibutedTitle;/**  空白页的副标题 默认为 nil,不显示*/@property(nonatomic,copy) IBInspectable NSAttributedString *emptyAtrtibutedSubtitle;/** 获取当下访问接口Page下标 默认从1开始 以来代替控制器计算Page*/-(NSNumber *)getCurrentPage;/** 开始加载*/-(void)beginLoading;/**结束加载,并刷新数据*/-(void)endLoading;/**提示无更多数据*/-(void)noMoreData;@end

License

(The MIT License)

0 0
原创粉丝点击