我们在这里使用EGOTableViewPullRefresh第三方库来实现iOS 列表下拉刷新效果
导入libsqlite3.0.dylib,不然编译有错误
我们在上次的项目文件中做进一步修改 iOS 使用ASIHttpRequest和GData解析xml网络文件
ViewController头文件
#import <UIKit/UIKit.h>
#import "ASIHTTPRequestDelegate.h"
#import "EGORefreshTableHeaderView.h"
@interface ViewController : UIViewController<ASIHTTPRequestDelegate,UITableViewDelegate,UITableViewDataSource,EGORefreshTableHeaderDelegate>
{
ASIHTTPRequest *_request;
UITableView *_myTableView;
NSMutableDictionary *_dic;
NSMutableDictionary *_isReadeds;
NSMutableArray *_dataArr;
// ----------
BOOL shouldLoading;
BOOL isLoading;
// 上拉刷新
EGORefreshTableHeaderView *refreshView;
BOOL isRefresh;
}
@property (nonatomic,retain) UITableView *_myTableView;
- (void)sendASIHttpRequest;
@end
在viewDidLoad方法中加入以下代码
// 加入refreshView;
CGRect refreshRect = CGRectMake(0.0f,
0.0f-_myTableView.bounds.size.height,
_myTableView.bounds.size.width,
_myTableView.bounds.size.height);
refreshView = [[EGORefreshTableHeaderView alloc] initWithFrame:refreshRect];
refreshView.delegate = self;
[_myTableView addSubview:refreshView];
/* 刷新一次数据 */
[refreshView refreshLastUpdatedDate];
实现以下协议方法
#pragma mark -
#pragma mark Third
-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidEndDecelerating %d", shouldLoading);
if (shouldLoading) {
//[self loadingBooks];
[self sendASIHttpRequest];
}
}
/* 手指离开屏幕 */
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"scrollViewDidEndDragging");
// CGFloat aHeight = scrollView.frame.size.height;
NSLog(@"contentoffset.y = %f",scrollView.contentOffset.y);
if (scrollView.contentOffset.y < -65) {
shouldLoading = YES;
} else {
shouldLoading = NO;
}
[refreshView egoRefreshScrollViewDidEndDragging:scrollView];
}
// 下拉刷新
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
/* 通知一下refreshView */
[refreshView egoRefreshScrollViewDidScroll:scrollView];
/* 调用refreshView中的scrollViewDidScroll方法 */
}
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view
{
/* 开始更新代码放在这里 */
isRefresh = YES;
/* 实现更新代码 */
[self sendASIHttpRequest];
//[self loadingBooks];
}
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view
{
/* 返给refreshView是否正在更新 */
return isRefresh;
}
- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view
{
/* refresh更新完成会调用该方法 设置更新时间 */
return [NSDate date];
}
在requestFinished方法中加入以下代码
isLoading = NO;
// 下拉刷新
isRefresh = NO;
[refreshView egoRefreshScrollViewDataSourceDidFinishedLoading:_myTableView];
完成下拉刷新效果
本文介绍了如何在iOS应用中实现下拉刷新效果,通过使用EGOTableViewPullRefresh第三方库,详细讲解了导入libsqlite3.0.dylib库的必要性以及在ViewController中设置下拉刷新的步骤。
2013

被折叠的 条评论
为什么被折叠?



