Add activity indicator at bottom of UITableView? [closed]

我与影子孤独终老i 提交于 2019-12-03 18:57:22

问题


I have UITableview with pagination like first will get 20 objects from server and will populate in UITableView then when it reaches last row need to make another service call to get next 20 objects.

My problem is I need to add activity indicator at bottom of my table and should say "Loading", User can scroll to up to view current objects but should not scroll down.

Is there any custom control? Is there any best way to achieve it?.

Thanks in advance.


回答1:


Let's Try TableView Footer View to show activity indicator.

For example :

Declare UIView * footerView; in .h file

Add Following methods in .m file

 - (void)viewDidLoad
 {
     [super viewDidLoad];

     [self initFooterView];
 }

 -(void)initFooterView
 {
    footerView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 40.0)];

    UIActivityIndicatorView * actInd = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

    actInd.tag = 10;

    actInd.frame = CGRectMake(150.0, 5.0, 20.0, 20.0);

    actInd.hidesWhenStopped = YES;

    [footerView addSubview:actInd];

    actInd = nil;
 }

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
     BOOL endOfTable = (scrollView.contentOffset.y >= ((self.contentArray.count * 40) - scrollView.frame.size.height)); // Here 40 is row height

    if (self.hasMoreData && endOfTable && !self.isLoading && !scrollView.dragging && !scrollView.decelerating)
   {
        self.tableView.tableFooterView = footerView;

        [(UIActivityIndicatorView *)[footerView viewWithTag:10] startAnimating];
   }

}

Thanks!




回答2:


check out this open source project.its may help you...

https://github.com/dkSolutions/DKPaginatedTableView



来源:https://stackoverflow.com/questions/22474081/add-activity-indicator-at-bottom-of-uitableview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!