在UITableView上添加加载页脚

时间:2015-03-25 06:49:30

标签: ios objective-c iphone uitableview

我有UITableView。当我滚动到底部时,它会加载更多数据。当滚动到底部时,如何将加载动画添加到表格的页脚?

3 个答案:

答案 0 :(得分:2)

试试这个

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { 
UIView *headerView = [[[UIView alloc] init]autorelease];

[headerView setBackgroundColor:[UIColor clearColor]];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
       action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Load More" forState:UIControlStateNormal];
button.frame = CGRectMake(10.0, 210.0, 160.0, 40.0);


[headerView addSubview:button];


return headerView;

}  

答案 1 :(得分:2)

您可以使用MNMBottomPullToRefreshManager文件加载更多数据。首先,您必须在viewDidLoad中将其初始化为

pullToRefreshManager_ = [[MNMBottomPullToRefreshManager alloc] initWithPullToRefreshViewHeight:60.0f tableView:table withClient:self];


- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[pullToRefreshManager_ tableViewScrolled];
}


- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate: (BOOL)decelerate
 {
[pullToRefreshManager_ tableViewReleased];
}


- (void)bottomPullToRefreshTriggered:(MNMBottomPullToRefreshManager *)manager
{
    //method to get more data 
   // [self CallWebServiceToLoadMorePAYMENTS];

}
}

重新加载tableView电话后:

[pullToRefreshManager_ tableViewReloadFinished];

答案 2 :(得分:1)

使用此:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    if(array.count>1){
            if(indexPath.row == array.count-1){
                [self setupTableViewFooter];
            }
    }
}


- (void)setupTableViewFooter
{
    // set up label
    UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.navigationController.navigationBar.frame.size.height)];
    footerView.backgroundColor = [UIColor clearColor];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
    label.font = [UIFont fontWithName:Font_MuseoSans size:14];
    label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    label.textColor = [UIColor darkGrayColor];
    label.text = @"Loading";

    self.footerLabel = label;
    CGSize labelSize = [self.footerLabel sizeThatFits:footerView.frame.size];
    [footerView addSubview:self.footerLabel];

    // set up activity indicator
    UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    activityIndicatorView.hidesWhenStopped = YES;
    activityIndicatorView.color = [UIColor blackColor];

    self.activityIndicator = activityIndicatorView;
    [self.activityIndicator startAnimating];

    [footerView addSubview:self.activityIndicator];

    CGRect footerFrame = footerView.frame;
    label.frame = CGRectMake((footerFrame.size.width-labelSize.width - 4 - activityIndicatorView.frame.size.width)/2, (footerFrame.size.height-labelSize.height)/2
                             , (footerFrame.size.width-labelSize.width - 4 - activityIndicatorView.frame.size.width), labelSize.height);
    self.activityIndicator.frame = CGRectMake(label.frame.origin.x + labelSize.width + 4, (footerFrame.size.height-activityIndicatorView.frame.size.height)/2
                                              , activityIndicatorView.frame.size.width, activityIndicatorView.frame.size.height);

    self.tableView.tableFooterView = footerView;
}