利用runtime为封装MJRefresh的分类添加分页页码属性

本文介绍了如何通过Runtime为MJRefresh的UIScrollView分类添加分页页码属性。由于Category无法直接添加实例变量,故采用Runtime的关联对象特性来实现这一功能,使得在全局调用MJRefresh时能获取到加载数据的分页信息。文中提供了具体的.h和.m文件代码示例,以便于在实际项目中简便地应用刷新加载功能。
摘要由CSDN通过智能技术生成

需求:

对MJRrefresh进行一层基础封装,实现多种方法并可在全局调用。在MJRrefresh加载数据完成后返回分页页码

方法:

为UIScrollView添加基于MJRefresh的分类(Category)。由于Category中使用 @property 并不能在分类中正确创建实例变量和存取方法。

在Runtime中,objc_class结构体大小是固定的,不可能往这个结构体中添加数据,只能修改。所以ivars指向的是一个固定区域,只能修改成员变量值,不能增加成员变量个数。methodList是一个二维数组,所以可以修改*methodLists的值来增加成员方法,虽没办法扩展methodLists指向的内存区域,却可以改变这个内存区域的值(存储的是指针)。因此,可以动态添加方法,不能添加成员变量。

需利用runtime关联对象的特性为分类添加页码(pageIndex)属性

代码:

.h文件

#import <UIKit/UIKit.h>

@interface UIScrollView (MJRefreshEX)

/**
 上拉加载
 
 @param automaticallyRefresh 是否自动加载
 @param loadMoreBlock 加载回调
 */
- (void)addFooterWithAutomaticallyRefresh:(BOOL)automaticallyRefresh loadMoreBlock:(void(^)(NSInteger pageIndex))loadMoreBlock;

// 其他方法...

@end</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值