• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

UIRefreshControl: aggiungere il Pull Down To Refresh ai Table View Controller senza usare librerie esterne

By Redazione | on 4 Febbraio 2014 | 6 Comments
Tips & Tricks

Forse non tutti sanno che per aggiungere la funzionalità di refresh dei dati ad un table view controller tramite il sistema Pull Down To Refresh, non occorre più necessariamente creare tutto da zero o usare codice di terzi, almeno non più dalla versione 6 dell’iOS SDK. Da questa versione, infatti, è presente il nuovo componente Refresh Control, ispirato probabilmente alle prime app che hanno deciso di sostituire i vecchi button di aggiornamento, integrando al loro posto questo sistema sicuramente più gradevole e intuitivo.

UIRefreshControl-iOS-SDK-6-devAPP

Aggiungere il Pull Down To Refresh tramite UIRefreshControl

Vediamo brevemente come fare. Create un progetto contenente un table view controller (per questo vi rimando ai tutorial di devAPP o a quelli che potete trovare in rete).
Nel file di intestazione (.h) aggiungete la property e il metodo seguenti:

@property (strong, nonatomic) UIRefreshControl *refreshControl;
- (void) refreshData;

Il metodo si occuperà di aggiornare i dati e di mostrarli nella tabella (tramite reloadData). Mentre alla property assoceremo un’istanza di UIRefreshControl. Apriamo quindi il file di implementazione (.m) e modifichiamo il metodo initWithStyle: come segue:

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
        
        // Refresh control
        self.refreshControl = [[UIRefreshControl alloc] init];
        [self.refreshControl addTarget:self
                                action:@selector(refreshData)
                      forControlEvents:UIControlEventValueChanged];
    }
    return self;
}

Come vedete niente di complicato, inviando il messaggio addTarget:action:forControlEvents: al refresh control, verrà chiamato il metodo refreshData (quando l’utente effettuerà un pull down della tabella) che aggiornerà e mostrerà i nuovi dati nella stessa.

Implementiamo quindi il metodo refreshData:

-(void)refreshData{
    // Recuperate i vostri dati aggiornati

    [self.refreshControl endRefreshing];
    [self.tableView reloadData];
}

Non dimenticate di inviare il messaggio endRefreshing al refresh control o questo rimarrà in stato di aggiornamento a tempo indeterminato e mostrerà perennemente la vista designata per rappresentare il refresh dei dati.

Per maggiori info: UIRefreshControl Class Reference

Semplice, vero?
Spero vi sia utile.
Alla prossima.

Share this story:
  • tweet

Tags: iosdevsmobile developersPull down to refreshtips & tricks ios developerUIRefreshControl iOS

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • StoreBox: libreria per le SharedPreferences in Android

    23 Marzo 2017 - 0 Comment
  • Iconify, tante icone per le interfacce utente Android

    28 Ottobre 2016 - 0 Comment
  • ButterKnife: Field and method binding for Android views

    6 Giugno 2016 - 0 Comment

Author Description

6 Responses to “UIRefreshControl: aggiungere il Pull Down To Refresh ai Table View Controller senza usare librerie esterne”

  1. 4 Febbraio 2014

    Moxy

    L’unico peccato è che funziona solo con le subclass di UITableViewController e non con una table view aggiunta alla view di una subclass di UIViewController.
    P.S.: Non serve aggiungere la property refreshControl visto che fa già parte dell’interface di UITableViewController.

  2. 4 Febbraio 2014

    bugbaal

    Non proprio, è possibile usarlo ovunque creando appunto il UITableViewController a runtime e collegarlo alla nostra tableView:

    UITableViewController *tvc = [[UITableViewController alloc] init];
    tvc.tableView = self.myTableView;

    self.refreshControl = [[UIRefreshControl alloc] init];
    [self.refreshControl addTarget:self action:@selector(refreshData:) forControlEvents:UIControlEventValueChanged];
    tvc.refreshControl = self.refreshControl;

  3. 4 Febbraio 2014

    Moxy

    Grazie per il tip :). Ho sempre usato altre soluzioni per questo motivo.

  4. 5 Aprile 2014

    Tonino

    Grazie ragazzi, ottima miniguida.
    Ho solo un piccolo quesito da neofita, in un ViewController creato da Storyboard ho già un initWithNibName…dove colloco – (id)initWithStyle:(UITableViewStyle)style ??

    un altro quesito relativo al trucco della creazione della UITableViewController a Runtime…dove converrebbe creare? nell’initWithStyle?

    grazie mille ragazzi, siete grandi!

  5. 6 Aprile 2014

    Tonino

    Buongiorno ragazzi, ottima mini guida.
    Ho un dubbio da neofita:
    il primo. Nel mio progetto ho un VieWController che ha InitWithNibName, dove colloco l’
    – (id)initWithStyle:(UITableViewStyle)style?

    Saluti

  6. 6 Aprile 2014

    Tonino

    Ops mi scuso per il quasi doppione, ma il messaggio inviato ieri non c’era! mi sembrava strano.
    Saluti

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO