Adding UIRefreshControl to UITableView – Xamarin.iOS
Reloading a UITableView in an iOS app is a widely popular Gesture. Adding PullToRefresh to a UITableView in Xamarin.iOS is rather straightforward with the help of UIRefreshControl.
Steps to implement Pull to refresh:
- Initialize UIRefreshControl
- Add it to the UITableView
- Handle the ValueChanged event of UIRefreshControl
- Set data in the UITableViewSource and reload the UITableView
Here is the code to implement pull to refresh:
Assumptions:
TableView – reference to the TableView
DataSource – is a class which inherits UITableViewSource
DataSource.Objects – is a public List< object >(), accessible to the UIViewController
private UIRefreshControl refreshControl; public override void ViewDidLoad() { base.ViewDidLoad(); // Set the DataSource for the TableView TableView.Source = dataSource = new DataSource(this); // Create the UIRefreshControl refreshControl = new UIRefreshControl(); // Handle the pullDownToRefresh event refreshControl.ValueChanged += refreshTable; // Add the UIRefreshControl to the TableView TableView.AddSubview(refreshControl); } private void refreshTable(object sender, EventArgs e) { fetchData(); refreshControl.EndRefreshing(); TableView.ReloadData(); } private void fetchData() { var objects = new List<object>(); // fetch data and store in objects. dataSource.Objects = objects; }
References: https://developer.xamarin.com/api/type/UIKit.UIRefreshControl/
Do share whether this works out for you in the comments below.