Tip iOS #32 – Creiamo un ActionMenu con gli RSComponents

iOSCon l’introduzione dei PopOver tra i controlli disponibili, prima per iPad e poi per iPhone, e l’elenco di alcune direttive del pulsante di default Action si è venuto a creare un componente intermedio identificato con il termine generico ActionMenu.

In genere questo menu viene visualizzato quando, alla pressione di un tasto, si vogliono presentare più azioni possibili all’utente, il quale, tramite un semplice tocco, decide poi quale attivare.

Vediamo gli ActionMenu all’opera quando, ad esempio adoperando QuickLook, scegliamo a quale applicazione inviare il documento visualizzato in quel momento, ma anche in mail su iPad quando scegliamo se rispondere o inoltrare il messaggio visualizzato.

Il metodo tipico di implementare un ActionMenu consiste nel creare una view in cui collocare i nostri elementi e gestire quindi l’interazione degli elementi con l’utente per poi restituire, tramite delegate, il risultato al chiamante.

Spesso, però, questo tipo di meccanismo si ripete più volte all’interno di un’applicazione con modificate solo le voci del menu (ed ovviamente le reazioni dell’applicazione) ma costringendo, spesso, a creare molti ViewController e relativi delegate simili tra di loro.

Negli RSComponents sono state introdotte due classi che semplificano molto questo meccanismo (almeno per i casi generici) RSActionMenu ed RSActionItem.

La prima è un’implementazione di un UITableViewController che si occupa di riempire gli elementi, visualizzarli e reagire alla selezione di uno di questi da parte dell’utente. Fornisce un delegate: RSActionMenuDelegate  il cui unico metodo è:

- (void)didSelect:(RSActionMenu *)actionMenu withItem:(RSActionItem *)item atPosition:(NSInteger)index;
restituente al chiamante l’item selezionato.
La seconda classe contiene la definizione dei singoli items che compongono i menu. E’ una classe principalmente descrittiva dell’item.
L’uso di tali classi è molto semplice, in particolare la seconda può essere utilizzata, in caso di ActionMenu semplici, soltanto nella funzione di callback del delegate per verificare la voce di menu selezionata dall’utente.
All’interno degli RSComponents vi è l’applicazione Demo che illustra l’uso di tale menu all’interno di un’applicazione.
Gli RSComponents sono disponibili a questo indirizzo.
Arrivederci al prossimo suggerimento,
Roberto S.



Related Posts Plugin for WordPress, Blogger...

Questa voce è stata pubblicata in iOS Tips, RSComponents e contrassegnata con , , , , , , , , , . Contrassegna il permalink.
Wordpress Code Snippet by Allan Collins