UITableView底部FooterView实现上拉刷新

@interface FooterViewTestViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>{

// 表格数据数组,因为是演示代码,直接定义为数组

NSMutableArray *tableData;

    // 下拉时显示的数据

NSMutableArray *tableMoreData;

    // 数据数量

NSUInteger dataNumber;

    // 加载状态

BOOL _loadingMore;

 

UITableView *table;

}

 

@property (nonatomic, retain) UITableView *table;

@property (nonatomic, retain) NSMutableArray *tableData;

@property (nonatomic, retain) NSMutableArray *tableMoreData;

 

// 创建表格底部

- (void) createTableFooter;

// 开始加载数据

- (void) loadDataBegin;

// 加载数据中

- (void) loadDataing;

// 加载数据完毕

- (void) loadDataEnd;

 

@end

 

 

@implementation FooterViewTestViewController

 

@synthesize table;

@synthesize tableData;

@synthesize tableMoreData;

 

- (void)viewDidLoad {

    [super viewDidLoad];

table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)style:UITableViewStylePlain];

table.delegate = self;

table.dataSource = self;

[self.view addSubview:table];

 

tableData = [[NSMutableArray alloc] initWithObjects:

@"January",@"February",@"March",@"April",@"May",@"June",

@"July",@"August",@"September",@"October",@"November",@"December",nil];

tableMoreData = [[NSMutableArray alloc]initWithObjects:@"BAIDU",@"GOOGLE",@"FACEBOOK",@"YAHOO",nil];

 

[self createTableFooter];

}

 

#pragma mark -

#pragma mark Table view data source

 

// Customize the number of sections in the table view.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return 1;

}

 

 

// Customize the number of rows in the table view.

- (NSInteger)tableView:(UITableView *)tableViewnumberOfRowsInSection:(NSInteger)section {

    return [tableData count];

}

 

 

// Customize the appearance of table view cells.

- (UITableViewCell *)tableView:(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath {

    

    static NSString *CellIdentifier =@"Cell";

    

    UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        cell = [[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease];

    }

    

cell.textLabel.text = [tableData objectAtIndex:indexPath.row];

 

    return cell;

}

 

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollViewwillDecelerate:(BOOL)decelerate

{    

    // 下拉到最底部时显示更多数据

if(!_loadingMore && scrollView.contentOffset.y >((scrollView.contentSize.height - scrollView.frame.size.height)))

{

[self loadDataBegin];

}

}

 

// 开始加载数据

- (void) loadDataBegin

{

    if (_loadingMore == NO) 

    {

        _loadingMore = YES;

        UIActivityIndicatorView*tableFooterActivityIndicator = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(75.0f, 10.0f, 20.0f, 20.0f)];

        [tableFooterActivityIndicatorsetActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];

        [tableFooterActivityIndicatorstartAnimating];

        [self.table.tableFooterViewaddSubview:tableFooterActivityIndicator];

 

[self loadDataing];

    }

}

 

// 加载数据中

- (void) loadDataing

{

dataNumber = [tableData count];

 

for (int x = 0; x < [tableMoreData count]; x++) 

{

[tableData addObject:[tableMoreData objectAtIndex:x]];

}

 

[[self table] reloadData];

 

[self loadDataEnd];

}

 

// 加载数据完毕

- (void) loadDataEnd

{

_loadingMore = NO;

[self createTableFooter];

}

 

// 创建表格底部

- (void) createTableFooter

{

    self.table.tableFooterView = nil;

    UIView *tableFooterView = [[UIView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, self.table.bounds.size.width,40.0f)]; 

    UILabel *loadMoreText = [[UILabel alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 116.0f, 40.0f)];

    [loadMoreText setCenter:tableFooterView.center];

    [loadMoreText setFont:[UIFontfontWithName:@"Helvetica Neue" size:14]];

    [loadMoreText setText:@"上拉显示更多数据"];

    [tableFooterView addSubview:loadMoreText];   

 

    self.table.tableFooterView = tableFooterView;

}

 

- (void)didReceiveMemoryWarning {

// Releases the view if it doesn't have a superview.

    [super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.

}

 

- (void)viewDidUnload {

// Release any retained subviews of the main view.

// e.g. self.myOutlet = nil;

}

 

- (void)dealloc {

    [super dealloc];

}

 

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值