Controlli
Storyboard
L’assistant editor consente una visualizzazione contestuale in cui sono affiancati verticalmente il ViewController nello storyboard ed il relativo file di codice.
Storyboard Tale visualizzazione consente di creare in maniera rapida una proprietà nel codice automaticamente associata al relativo componente grafico. Per farlo è sufficiente l’utilizzo della shortcut CTRL + drag (trascinamento a partire dal controllo fino al punto di codice desiderato per il posizionamento della property)
Controlli comuni
UILabel Mostra all’utente un’informazione testuale Tramite storyboard è possibile personalizzare testo, colore, font, allineamento, numero di linee, ecc.. É possibile impostare il testo come Plain oppure Attributed. La seconda modalità consente un maggior grado di personalizzazione grafica.
UILabel - Attributed La proprietà Attributed consente di modificare colore, stile, dimensione, ecc.. di sottoinsiemi di caratteri
UITextField Consente all’untente l’inserimento di informazioni testuali Fortemente consigliato l’uso del placeholder per indicare all’utente il tipo di informazione richiesta Possiede una serie di proprietà che permettono di personalizzare layout e behaviour della tastiera La proprietà text consente di recuperare da codice il valore inserito
UITextFieldDelegate É possibile associare ad un TextField un delegate (generalmente il ViewController che lo contiene) per intercettare gli eventi più significativi
UITextFieldDelegate textFieldDidEndEditing: notifica che è stato completato l’inserimento da parte dell’utente (solitamente coincide con la perdita del focus da parte del controllo). Utile nel caso si intenda effettuare una qualsiasi azione dopo il termine della compilazione textFieldShouldReturn: Metodo che deve restituire un valore booleano per indicare se deve essere gestita dal componente la pressione del tasto “Return” della tastiera (che costituisce l’azione standard di sistema per la chiusura della stessa).
UIButton Componente utilizzato per consentire all’utente l’esecuzione di determinate azioni Il Type consente di indicare se si intende personalizzarne il comportamento oppure utilizzare alcune tipologie di default del sistema Selezionando Custom si ha la possibilità di modificare le proprietà di ciascun singolo stato: Default, Highlighted, Focused, Selected e Disabled
UIButton - Stati Default: stato base, l’utente non ha ancora effettuato alcuna azione sul bottone Highlighted: L’utente sta premendo il bottone Disabled: Il bottone è disabilitato Focused: stato in cui il controllo è in possesso del focus corrente, condizione generalmente non attuabile per i Button Selected: Scarsamente utilizzata in riferimento ai Button, indica se è stato contrassegnato come selected, generalmente a livello di codice
UIImageView Utilizzata per la visualizzazione di immagini all’interno dell’applicazione Indispensabile specificare l’immagine da visualizzare (deve essere contenuta nel progetto) e la proprietà Mode La proprietà Mode determina il ridimensionamento dell’immagine in funzione della dimensione del frame della view Importante abilitare “Clib Subviews” quelora si voglia evitare che l’immagine fuoriesca dal frame
UISlider Consente la selezione di una valore all’interno di un determinato range. La selezione viene effettuata trascinando tramite swipe un apposito cursore L’azione più importante è “Value Changed”, che notifica una modifica del valore selezionato
UISlider Il valore è sempre float E’ possibile configurare i limiti ed i valore iniziale. La proprietà “Continuous Updates” indica se gli aggiornamenti devono avvenire anche mentre l’utente sta trascinando il cursore
UISwitch Permette all’utente di specificare una condizione booleana, quindi che può avere solamente 2 valori Il cambio di stato avviene al tap sul controllo o tramite swipe del cursore L’azione più importante è “Value Changed”, che notifica una modifica del valore selezionato
UISwitch E’ possibile scegliere se all’avvio deve essere on o off. I colori sono configurabili (colore del cursore e dello sfondo quando è on).
UIStepper Ha un valore di tipo Double, accessibile tramite la proprietà value, che specifica il valore corrente. Graficamente è composto da due bottoni che permettono di incrementare/decrementare tale valore L’azione più importante è “Value Changed”, che notifica una modifica del valore selezionato
UIStepper Possibilità di configurare valori minimo e massimo, valore iniziale e incremento. Autorepeat: indica se tenendo premuto il tasto l’aggiornamento deve continuare ad avvenire Wrap: Indica se, dopo aver raggiunto la fine, il valore deve tornare a quello iniziale. Continuous: come per lo slider
UISegmentedControl Permette di selezionare un valore da un elenco E’ possibile scegliere un numero infinito di segmenti (anche se sconsigliato) L’azione più importante è “Value Changed”, che notifica una modifica del valore selezionato
UISegmentedControl Numero di segmenti configurabile E’ possibile configurare i singoli segmenti, specificando il testo/immagine da mostrare per ciascuno. Alcuni segmenti possono essere inizialmente disabilitati ed è possibile specificarne uno come selezionato.
ActionSheet e Alert
Alert - ActionSheet
Selezionare un’azione In molte situazioni è necessario fornire all’utente una scelta fra varie azioni disponibili. per gestire tali casi il sistema ci mette a disposizione due componenti : UIActionSheet e UIActionController UIActionSheet è stato lo standard per le versioni precedenti la 8.0. Ora è considerato deprecato ma comunque funzionante. UIActionController è il nuovo componente consigliato da Apple.
UIActionSheet Per utilizzare un’ActionSheet è necessario creare una nuova istanza e valorizzare le seguenti proprietà: title: serve per fornire un’indicazione all’utente delegate: indica quale componente dovrà rispondere agli eventi che saranno scatenati cancelButtonIndex: l’indice dell’eventuale bottone di annullamento Inoltre il metodo addButtonWithTitle, ci offre la possibilità di aggiungere i vari bottoni
UIActionSheetDelegate Il delegate responsabile degli eventi scatenati da un’ActionSheet è l’UIActionSheetDelegate. n/UIKit/Reference/UIModalViewDelegate_Protocol/index.html Fra i vari metodi, il più importante è sicuramente - actionSheet:clickedButtonAtIndex: che ci permette di gestire la selezione di un’azione da parte dell’utente. Dopo aver definito tutte le proprietà, è sufficiente invocare il metodo dell’actionSheet showInView, passando come parametro la view in cui si vuole mostrarla.
UIAlertController Si tratta di un vero e proprio ViewController, utilizzabile per gestire varie situazioni, fra cui, come detto, la selezione. Il costruttore ci permette di indicare title, messagge e preferredStyle. I primi due parametri sono intuitivi: il terzo (di tipo UIAlertControllerStyle) ci permette di specificare come desideriamo che venga visualizzato il controller. Nel caso in questione è necessario impostare il valore.ActionSheet. Questo componente non necessita di delegate, dato che le azioni sono associate direttamente ai singoli bottoni.
UIAlertAction Ogni bottone da aggiungere all’UIAlertController è di tipo UIAlertAction. Le proprietà richieste dal costruttore sono: title: la stringa mostrata all’utente style: definisce come deve essere mostrato il bottone. E’ di tipo UIAlertActionStyle ed i possibili valori sono: Default: per azioni standard Cancel: per l’azione di annullamento Destructive: per azioni che comportano cancellazioni
UIAlertView Anche questo componente è stato deprecato in favore dell’UIAlertController. Il suo compito è quello di mostrare un Alert, generalmente per i seguenti motivi: Informare l’utente del verificarsi di un determinato evento o dell’esito di un’operazione. Richiedere conferma prima di effettuare un’operazione che non potrà essere annullata (Es: cancellare dei dati dalla memoria)
UIAlertView Anche questo componente è stato deprecato in favore dell’UIAlertController. Il suo compito è quello di mostrare un Alert, generalmente per i seguenti motivi: Informare l’utente del verificarsi di un determinato evento o dell’esito di un’operazione. Richiedere conferma prima di effettuare un’operazione che non potrà essere annullata (Es: cancellare dei dati dalla memoria)
UIAlertView Per creare un nuovo Alert view è sufficiente utilizzare il suo costruttore con i seguenti parametri: title, message : titolo e messaggio mostrati all’utente delegate: delegato invocato nel momento in cui l’utente preme un bottone cancelButtonTitle: stringa associata al bottone di annullamento dell’operazione otherButtonTitles: stringhe associate agli eventuali altri bottoni Per mostrarlo all’utente è sufficiente invocare il metodo show()
UIAlertViewDelegate Per gestire un UIAlertView è necessario definire un oggetto di tipo UIAlertViewDelegate tion/UIKit/Reference/UIAlertViewDelegate_Protocol/index.ht ml Anche in questo caso il callback di maggior interesse è - alertView:clickedButtonAtIndex: che indica la posizione del bottone premuto.
UIAlertController come UIAlertView Per utilizzare un UIAlertController per mostrare degli alert, è sufficiente impostare, nel costruttore, la proprietà preferredStyle al valore UIAlertControllerStyle.Alert. Il resto è analogo a quanto visto in precedenza