Swift tableView底部加载指示器

时间:2016-09-09 21:00:00

标签: swift uitableview uiscrollview load uiactivityindicatorview

我目前正在努力为我的应用实施底部加载指标,就像Instagram和Facebook一样。简单地说,我想在底部显示一个加载指示器(在反向拖动时),就像正常的表视图加载一样。

以下是我对常规表视图更新的代码:

var refreshControl: UIRefreshControl!

//In viewDidLoad

refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: "Refresh:", forControlEvents: UIControlEvents.ValueChanged)
tableView.addSubview(refreshControl)

在我的func Refresh()中,我只是获取数据,并从那里控制活动指示器。但是,如果我想在tableView的底部启用它,我将如何处理此问题?

非常感谢帮助。

3 个答案:

答案 0 :(得分:1)

将其添加到表格页脚视图

tableView.tableFooterView = footerView

添加refreshControl会很困难。 在页脚视图中添加UIIndicatorView。 实现scrollViewDidScroll:

func scrollViewDidScroll(scrollView: UIScrollView) {
    if (scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height {
        tableView.tableFooterView!.hidden = true
        // call method to add data to tableView
    }
}

答案 1 :(得分:1)

刷新控制器用于pulltorefresh,通常用于重新加载数据。

屏幕底部的微调器用于分页。

您需要在numberOfRows方法中执行的操作返回arraysize + 1。 在cellforRowAtIndexPath方法中检查indexpath.row> arraySize比返回中心具有uiactivitycenter的单元格。

希望这会对你有所帮助。

答案 2 :(得分:0)

如果要通过分页从API调用中获取数据,该数据必须显示在表格视图中,那么Kuntal的答案是正确的,此外,当没有更多数据时,以及完成后,您可以将包含指标视图的单元格设置为0高重装。比检查并返回arraysize + 1更容易管理。