MACTableView 一键集成空白文字、图片、上拉下拉事件
来源:互联网 发布:windows10如何下载软件 编辑:程序博客网 时间:2024/05/22 06:40
MACTableView
传送门:https://github.com/azheng51714/MACTableView
Projects using this library
对 UITableView 空白页文字提示、空白页图片、上拉下拉事件等进行了高度封装,使用简单高效,并命名为MACTableView, 欢迎star & issue
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];}
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
- MACTableView 一键集成空白文字、图片、上拉下拉事件
- 设置 PullToRefreshListview的 上拉下拉文字
- 快速集成上拉下拉刷新
- 上拉下拉电阻
- spi 上拉下拉
- 上拉下拉电阻
- RecyclerView上拉下拉
- PullOnrefreshListView上拉下拉
- pulltorefresh上拉下拉
- XListView上拉下拉
- pulltorefreshdemo 上拉下拉
- 上拉下拉加载
- XRecyclerView上拉下拉
- PullToRefreshListView上拉下拉
- 上拉下拉刷新(2)网络加载图片
- 轮播图加载Imageloader图片,Xlistview上拉下拉
- ListView上拉下拉刷新
- 上拉下拉复位SMBus
- 制作memcache 简单的 hash 调度器
- 文章标题
- Tapestry的template和specification定义在不同文件夹的方法
- linux内核源码总览之0000--------备分,未整理,虚拟文件系统2
- 棋牌游戏开发之地主算法判断牌型
- MACTableView 一键集成空白文字、图片、上拉下拉事件
- 创建数据库脚本
- C++11智能指针之unique_ptr
- hbase集群断电数据被破坏无法启动
- 使用tapestry-delegate提高Tapestry运行效率
- 一个Tomcat支持不同的域名访问各自不同程序的配置方法
- GPIO 模拟I2C
- Android设置ScrollView回到顶部的三种方式
- 配置 Tapestry