askaale askaale - 2 months ago 32
Swift Question

Swift tableView bottom loading indicator

I am currently struggling with implementing a bottom loading indicator for my app, exactly like Instagram and Facebook has. Simply I want to show a loading indicator at the bottom (on reverse drag) just like a normal table view loading.

Here is the code that I have for the regular table view update:

var refreshControl: UIRefreshControl!

//In viewDidLoad

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


In my func Refresh() I simply just fetch the data, and controls the activity indicator from there. However, how would I approach this, if I wanted to enable this in the bottom of my tableView?

Help is much appreciated.

vj9 vj9
Answer

Add it to the table footer view

tableView.tableFooterView = footerView

Adding a refreshControl would be difficult. Add a UIIndicatorView to the footerview. Implement 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
    }
}