Closed. This question is opinion-based。它当前不接受答案。












想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

7年前关闭。



Improve this question




我有带有分页的UITableview,例如首先从服务器获取20个对象,并将填充在UITableView中,然后当到达最后一行时,需要进行另一个服务调用以获取下一个20个对象。

我的问题是我需要在表格底部添加事件指示器,并应显示“正在加载”,用户可以向上滚动以查看当前对象,但不能向下滚动。

是否有任何自定义控件?
有什么最佳方法可以实现它吗?

提前致谢。

最佳答案

让我们尝试使用TableView页脚 View 显示事件指示器。

例如 :

在.h文件中声明UIView * footerView;
在.m文件中添加以下方法

 - (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];
   }

}

谢谢!

关于ios - 在UITableView的底部添加事件指示器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22474081/

10-11 23:11