关于下拉更新框架 EGORefreshTableHeaderView在Xcode4.2中, ARC下面的使用
来源:互联网 发布:java http协议接口 编辑:程序博客网 时间:2024/06/06 08:37
http://blog.163.com/l1_jun/blog/static/14386388201210192163776/
关于如何在页面中使用EGORefreshTableHeaderView的文章网上一大把, 抄来抄去的, 但也都没什么大问题. 只是在XCode4.2的ARC环境中使用的时候, 错误一把. 借此机会, 完整的记录一下如何排除错误, 及使用的方法.
首先第一步当然是下载这个下拉更新的框架了. https://github.com/enormego/EGOTableViewPullRefresh/downloads
下载之后解包, 然后将
EGORefreshTableHeaderDelegate.h
EGORefreshTableHeaderDelegate.m
这两个文件, 以及项目中的图片文件都复制到你的项目文件内, 这时候, 如果你启用了ARC, 应该会报一片错误, 让我们来具体看一下.
启用了ARC之后, 就不允许手动的release了, 因此, [view release], [lable release] 还有 autorelease这样的代码都需要删除掉.
在EGORefreshTableHeaderDelegate.m的这个文件中, @synthesize delegate=_delegate; 会报错, "
解决办法是需要将EGORefreshTableHeaderDelegate.h文件中的 assign 换为retain
- //@property(nonatomic,assign) id <EGORefreshTableHeaderDelegate> delegate; //删除掉. 换为下面的
- @property(nonatomic,retain)id <EGORefreshTableHeaderDelegate> delegate;
这样代码就会通过编译了~ 这样就需要将EGORefreshTableHeaderView与我们的tableview整合了, 然后按照Demo的方法,
添加EGORefreshTableHeaderDelegate的接口,
定义_reloading, 和EGORefreshHeaderView
声明reloadTableViewDataSource和doneLoadingTableView这两个函数
- #import <UIKit/UIKit.h>
- #import "EGORefreshTableHeaderView.h"
- @interface FMFutureMessage : UIViewController<UITableViewDelegate, UITableViewDataSource,EGORefreshTableHeaderDelegate>
- {
- BOOL _reloading;
- EGORefreshTableHeaderView *_refreshHeaderView;
- }
- @property(strong, nonatomic) IBOutlet UITableView *tbView;
- -(void)reloadTableViewDataSource;
- -(void)doneLoadingTableViewData;
- @end
接下来, 我们需要将xib文件中的TableViewController与这里定义的tbView建立关联, 因为我忘记了指定tbView与XIB中的TabViewController, 导致了刷新箭头怎么样也显示不出来, 所以一定不要忘记啊~~~~
现在我们处理一下.m文件
处理m文件, 建立关联.和响应事件.
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view from its nib.
- if(_refreshHeaderView == nil)
- {
- EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tbView.bounds.size.height, self.view.frame.size.width, self.tbView.bounds.size.height)];
- view.delegate = self;
- [self.tbView addSubview:view];
- _refreshHeaderView = view;
- }
- [_refreshHeaderView refreshLastUpdatedDate];
- }
- -(void)reloadTableViewDataSource
- {
- NSLog(@"==开始加载数据");
- [self.tbView reloadData];
- _reloading = YES;
- }
- - (void)doneLoadingTableViewData{
- NSLog(@"===加载完数据");
- // model should call this when its done loading
- _reloading = NO;
- [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.tbView];
- }
- #pragma mark –
- #pragma mark UIScrollViewDelegate Methods
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
- [_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
- }
- - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
- [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
- }
- #pragma mark –
- #pragma mark EGORefreshTableHeaderDelegate Methods
- - (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
- [self reloadTableViewDataSource];
- [self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];
- }
- - (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{
- return _reloading; // should return if data source model is reloading
- }
- - (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{
- return [NSDate date]; // should return date data source was last changed
- }
最后, 如果是开发中文应用程序, 不要忘记进入EGORefreshTableHeaderView.m中, 将提示的英文换成中文.
好了, 完成~~~
原文链接:http://blog.csdn.net/w59879213/article/details/7165236
- 关于下拉更新框架 EGORefreshTableHeaderView在Xcode4.2中, ARC下面的使用
- 关于下拉更新框架 EGORefreshTableHeaderView在Xcode4.2中, ARC下面的使用
- 关于下拉更新框架 EGORefreshTableHeaderView在Xcode4.2中, ARC下面的使用
- EGORefreshTableHeaderView--ARC下面的使用
- EGORefreshTableHeaderView--ARC下面的使用 UItableView下来刷新的使用
- [EGORefreshTableHeaderView]手动启动下拉更新的方法
- [EGORefreshTableHeaderView]手动启动下拉更新的方法
- [EGORefreshTableHeaderView]手动启动下拉更新的方法
- 实现下拉更新UITableView EGORefreshTableHeaderView
- 实现下拉更新UITableView EGORefreshTableHeaderView
- 实现下拉更新UITableView EGORefreshTableHeaderView
- 实现下拉更新UITableView EGORefreshTableHeaderView
- 重用EGORefreshTableHeaderView方法实现下拉更新的方法
- 在ARC项目中使用非ARC框架或者类库的解决方案
- 如何在ARC项目中使用非ARC的开源框架
- 如何在ARC项目中使用非ARC的开源框架
- 在ARC项目中使用非ARC框架或者类库的解决方案
- 如何在ARC项目中使用非ARC的开源框架
- matlab 神经网络常用操作
- Testlink简单管理流程
- mysql学习笔记(七):改造user案例
- Scala构建工具(SBT)教程
- Lua 通过 alien 库调用 zlib 压缩/解压
- 关于下拉更新框架 EGORefreshTableHeaderView在Xcode4.2中, ARC下面的使用
- ACdream1726 A Math game(dfs)
- hadoop 配置集群之间SSH无密码登陆 (重点推荐)
- 例题3.20 图询问 LA5031
- UVALive - 2531 The K-League(最大流+枚举)
- Dockerfile构建本地镜像
- ARM Linux系统调用详细分析
- Life & Work
- Python源码剖析笔记6-函数机制