Pull-to-refresh è diventato un paradigma comunemente utilizzato su dispositivi touch screen e ci sono un certo numero di implementazioni open source che permettono di aggiungere la capacità del pull to refresh ad una UITableView.
Oggi mi sono imbattuto in una nuova libreria che permette di aggiungere pull to refresh ad una sottoclasse UIScrollView, e con una sola riga di codice, senza delegate o sottoclassi UITableViewController. È inoltre possibile personalizzare facilmente l’aspetto del testo, freccia e indicatore di attività.
La libreria è SVPullToRefresh di Sam Vermette che ha creato molti altri controlli per iOS che sicuramente avete già visto in numerose app.
Potete trovare SVPullToRefresh su Github qui.
Una buona alternativa se vuoi semplicità e non vuoi usare componenti che usino sottoclassi di UITableViewController.
Detto questo vediamo come si usa…
Importiamo la libreria nel nostro progetto e creiamo la tableview con i suoi delegate come abbiamo già visto molte volte sul blog.
A questo punto possiamo aggiungere il pull to refresh richiamando il metodo non appena ne abbiamo bisogno, di solito si preferisce nel viewDidLoad.
[code lang=”obj-c”]
[tableView addPullToRefreshWithActionHandler:^{
// refresh data
// call [tableView.pullToRefreshView stopAnimating] when done
}];
[/code]
Abbiamo inoltre a disposizione alcune proprietà da poter personalizzare
[code lang=”obj-c”]@property (nonatomic, strong) UIColor *arrowColor;
@property (nonatomic, strong) UIColor *textColor;
@property (nonatomic, readwrite) UIActivityIndicatorViewStyle activityIndicatorViewStyle;[/code]
accedendo in questo modo
[code lang=”obj-c”]tableView.pullToRefreshView.arrowColor = [UIColor whiteColor];[/code]