SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
iOS: Sviluppo App iPhone & 
iPad 
Dario Pizzuto 
1
Storyboard 3a parte 
2
Storyboard 
3 
Argomenti! 
• UITableView! 
• UIAlertView! 
• UIImageView! 
• UITextView! 
• UIPickerView
UITableView 
4
Storyboard 
UITableView! 
• Oggetto molto usato! 
• Versatile! 
• Presenta i dati in una lista scorribile 
5
Storyboard 
UITableView! 
• Permette all’utente di navigare 
facilmente dari gerarchici! 
• Permette di presentare una lista di 
contenuti indicizzati! 
• Permette di raggruppare le informazioni ! 
• Permette la divisione dei dati in sezioni 
6
Storyboard 
UITableView! 
• Lavora unitamente ai Protocols! 
✓UITableViewDelegate! 
✓UITableViewDataSource! 
• Utili per gestire i records e layout 
grafico della TableView 
7
Storyboard 
8 
UITableView! 
• Esiste un componente pronto all’uso! 
✓UITableViewController! 
• È possibile gestire una tableView da oggetti non 
di tipo UITableViewController! 
• Conforme ai protocolli UITableViewDataSource 
e UITableViewDelegate! 
• IBoutlet in storyboard e collegamento delegate, 
data source
Storyboard 
Esempio UITableView custom 
9 
UITableViewCell
Storyboard 
UITableViewDataSource! 
• Protocollo per costruire e modificare 
tableView! 
• Metodi da implementare! 
✓tableView:cellForRowAtIndexPath:! 
✓numberOfSectionsInTableView:! 
✓tableView:numberOfRowsInSection: 
10
Storyboard 
UITableViewDelegate! 
• Protocol per gestire le azioni sui 
records! 
• Selection, edit, delete …! 
• Si compone di metodi opzionali! 
• Utilizza la classe NSIndexPath 
11
Storyboard 
NSIndexPath! 
• Fornisce il percorso di un determinato 
nodo all’interno di un albero! 
• Utilizzato in TableView sarà utile per 
12 
conoscere ! 
✓Section! 
✓Row
Storyboard 
13 
NSIndexPath
Storyboard 
UITableViewCell! 
• Rappresenta la cella della TableView! 
• È possibile scegliere il tipo di cella! 
• È possibile personalizzarla in ogni suo 
aspetto attraverso una subclass di 
UITableViewCell 
14
Storyboard 
Composizione UITableViewCell 
15
Storyboard 
UITableViewCell settings 
16
Storyboard 
UITableViewController Interface 
17
Storyboard 
UITableViewController Implementation 
18
Storyboard 
Esempio UITableViewController 
19
Storyboard 
UITableViewController! 
• Classe custom per la gestione della 
TableView! 
• Classe custom per la view di dettaglio ! 
• Collegare le Views 
20
Storyboard 
Esempio UITableViewController 
21
Storyboard 
UITableViewController! 
• Per gestire il passaggio di dati è 
necessario preparare la TableView e 
la View di destinazione ! 
• Utilizzare properties adatte a 
contenere il dato 
22
Storyboard 
UITableViewController! 
• Per gestire il passaggio di dati 
utilizziamo il metodo! 
23 
! 
!
Storyboard 
UITableViewController! 
• Istanziare view di dettaglio! 
• Set dati da “trasferire”! 
! 
! 
24
Storyboard 
UITableViewController editing mode! 
• È possibile abilitare la modalità di 
editing per singola cella o intera 
tableView ! 
• Attraverso la editing mode è possibile 
eliminare o inserire una nuova cella 
25
Storyboard 
UITableViewController editing mode! 
- (UITableViewCellEditingStyle)tableView:(UITableView 
*)tableView editingStyleForRowAtIndexPath: 
(NSIndexPath *)indexPath {! 
…..! 
if(….){! 
return UITableViewCellEditingStyleInsert;! 
26 
} else {! 
return UITableViewCellEditingStyleDelete;! 
}! 
}
Storyboard 
UITableViewController editing mode! 
• È importante aggiornare il modello dati prima di 
ogni operazione di insert/delete! 
• È importante aggiornare la TableView dopo le 
operazioni di insert/delete! 
• Si utilizza il metodo update reloadData:! 
• Possibile utilizzare anche i metodi 
beginUpdates e endUpdates rispettivamente 
prima e dopo le operazioni di insert/delete 
27
UIAlertView 
28
Storyboard 
UIAlertView! 
• Fornisce un sistema di output visuale 
per l’utente! 
• Permette di scatenare azioni a seguito 
della scelta dell’utente! 
• Lavora unitamente al delegate 
UIAlertViewDelegate 
29
Storyboard 
UIAlertView! 
• Deprecato in iOS 8 in favore di 
UIAlertController! 
• Adesso ingloba anche UIActionSheet 
per la gestione di menu contestuali 
contenenti azioni 
30
Storyboard 
UIAlertView! 
• Si compone di 3 elementi! 
31 
✓Title! 
✓Message! 
✓Buttons
Storyboard 
32 
UIAlertView 
Title 
Message 
Buttons
Storyboard 
UIAlertView! 
• Classe istanziata attraverso metodo 
initWithTitle:message:delegate:c 
ancelButtonTitle:otherButtonTitl 
es: 
33
Storyboard 
UIAlertView! 
• È possibile mostrare alert attraverso 
34 
metodo show
Storyboard 
Esempio UIAlertView! 
UIAlertView *alert = [[UIAlertView 
alloc]initWithTitle:@"Test" 
message:@"Hello World" 
delegate:nil 
cancelButtonTitle:@"Ok" 
otherButtonTitles:nil, nil];! 
[alert show]; 
35
Storyboard 
36 
UIAlertView
Storyboard 
37 
UIAlertView! 
• Impostiamo delegate se è necessario 
gestire azioni a partire dall’input utente! 
• E.G.! 
✓Salvataggio dati imputati! 
✓Azioni di cambio view dopo “Ok” o 
“Annulla”! 
✓…
Storyboard 
UIAlertView! 
• Per catturare le azioni dell’utente è 
necessario che la classe sia conforme 
al protocol UIAlertViewDelegate! 
• Implementare metodo opzionale 
dismissWithClickedButtonInde 
x:animated: 
38
UIImageView 
39
Storyboard 
UIImageView! 
• Oggetto che ci permette di 
visualizzare un’immagine o una serie 
di immagini generando un’animazione! 
• Possibile subclass per personalizzare 
ogni aspetto del componente! 
• Disponibile nello storyboard 
40
Storyboard 
41 
UIImageView
Storyboard 
UIImageView! 
• Può essere inizializzata attraverso il 
metodo initWithImage:! 
• È necessario impostare un’immagine 
all’interno del progetto 
42
Storyboard 
43 
Images.xcassets! 
• Libreria per la gestione degli oggetti 
multimediali importati nel progetto! 
• Utile per gestire in modo semplice le 
immagini! 
• Possibile Drag&Drop delle immagini! 
• Viene effettuata una copia locale del file, 
non reference al file
Storyboard 
44 
Images.xcassets
Storyboard 
45 
Images.xcassets
Storyboard 
Esempio UIImageView 
46
UITextView 
47
Storyboard 
48 
UITextView! 
• Componente per la visualizzazione e input di 
testo! 
• Scrollable! 
• Stile, colori, font, personalizzabili! 
• Lavora unitamente al delegate 
UITextViewDelegate! 
• Se lo utilizziamo da storyboard è necessario 
collegamento delegate
Storyboard 
UITextViewDelegate! 
• Metodi uso ricorrente! 
✓textViewDidBeginEditing ! 
✓textViewDidEndEditing ! 
✓textViewShouldEndEditing! 
✓shouldChangeTextInRange 
49
Storyboard 
UITextViewDelegate - 
textViewDidBeginEditing! 
• Metodo chiamato quando l’utente 
inizia l’editing nella textView 
50
Storyboard 
UITextViewDelegate - 
textViewDidEndEditing! 
• Metodo chiamato quando l’utente 
conclude l’editing nella textView! 
• Ultima chiamata del delegate prima di 
“chiudere” le operazioni sull’oggetto 
51
Storyboard 
UITextViewDelegate - 
textViewShouldEndEditing! 
• Metodo chiamato quando l’utente sta 
per concludere l’editing nella textView 
e muove il focus ad un altro 
componente 
52
Storyboard 
UITextViewDelegate - 
shouldChangeTextInRange! 
• Metodo chiamato ogni qual volta 
l’utente inserisce un carattere nella 
textView 
53
Storyboard 
54 
UITextView
Storyboard 
55 
UITextView 
TextView
UIPickerView 
56
Storyboard 
UIPickerView! 
• Componente di scelta attraverso 
visualizzazione a “slot-machine”! 
• Possibile mostrare più slot di 
selezione! 
• Es. scelta della data 
57
Storyboard 
58 
UIPickerView 
Date Picker 
Single component Picker
Storyboard 
UIPickerView! 
• Si compone di 2 oggetti! 
59 
✓Component! 
✓Row
Storyboard 
60 
UIPickerView 
Components 
Rows
Storyboard 
UIPickerView! 
• Lavora con i protocols! 
✓UIPickerViewDelegate! 
✓UIPickerViewDataSource 
61
Storyboard 
UIPickerViewDelegate! 
• Usato per configurare l’appereance 
della Picker! 
• Metodo 
pickerView:didSelectRow:inCo 
mponent: invocato quando l’utente 
effettua la selezione sulla picker 
62
Storyboard 
UIPickerViewDataSource! 
• Usato per configurare i valori delle rows 
della picker! 
✓numberOfComponentsInPickerVie 
w: stabilisce il numero di componenti 
della picker! 
✓pickerView:numberOfRowsInComp 
onent: stabilisce il numero delle rows 
del singolo componente 
63
Storyboard 
UIPickerView storyboard 
64
Storyboard 
UIPickerView storyboard 
65
Storyboard 
66 
UIPickerView! 
• Possibile presentare la picker a seguito di input 
su textField o altri oggetti! 
• In tal caso è necessario personalizzare la 
inputView della textField ed inserire il codice di 
creazione della picker nel metodo 
textFieldShouldBeginEditing! 
• La classe deve contenere i metodi di data 
source e delegate per configurare 
correttamente la Picker
Let’s Code 
67
Storyboard 
Let’s Code! 
✦Implementare una TableView con 
layout celle e dati a scelta e 
visualizzazione dati in View 
successiva 
68
Storyboard 
Ulteriori approfondimenti! 
TableView programming guide! 
UIAlertView! 
UIImageView! 
UITextView! 
Picker Views 
69
Domande ? 
70

Weitere ähnliche Inhalte

Ähnlich wie iOS_Course_11

Mob03 what's new in windows phone
Mob03   what's new in windows phoneMob03   what's new in windows phone
Mob03 what's new in windows phone
DotNetCampus
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project Brochure
Myti S.r.l.
 
Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5
Paolo Ferretti
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
DotNetCampus
 

Ähnlich wie iOS_Course_11 (13)

Xcode - Just do it
Xcode - Just do itXcode - Just do it
Xcode - Just do it
 
Mob03 what's new in windows phone
Mob03   what's new in windows phoneMob03   what's new in windows phone
Mob03 what's new in windows phone
 
Introduzione a WatchKit
Introduzione a WatchKitIntroduzione a WatchKit
Introduzione a WatchKit
 
Gestire i pdf con iOS
Gestire i pdf con iOSGestire i pdf con iOS
Gestire i pdf con iOS
 
Programming iOS lezione 2
Programming iOS lezione 2Programming iOS lezione 2
Programming iOS lezione 2
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project Brochure
 
Sencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codiceSencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codice
 
Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
iOS_Course_15
iOS_Course_15iOS_Course_15
iOS_Course_15
 
iOS_Course_2
iOS_Course_2iOS_Course_2
iOS_Course_2
 
Web dynpro for abap 03
Web dynpro for abap 03Web dynpro for abap 03
Web dynpro for abap 03
 
Making iOS UIKit Simulator for MacOS X
Making iOS UIKit Simulator for MacOS XMaking iOS UIKit Simulator for MacOS X
Making iOS UIKit Simulator for MacOS X
 

Mehr von Dario Pizzuto (9)

iOS_Course_14
iOS_Course_14iOS_Course_14
iOS_Course_14
 
iOS_Course_13
iOS_Course_13iOS_Course_13
iOS_Course_13
 
iOS_Course_12
iOS_Course_12iOS_Course_12
iOS_Course_12
 
iOS_course_7
iOS_course_7iOS_course_7
iOS_course_7
 
iOS_Course_6
iOS_Course_6iOS_Course_6
iOS_Course_6
 
iOS_Course_5
iOS_Course_5iOS_Course_5
iOS_Course_5
 
iOS_Course_4
iOS_Course_4iOS_Course_4
iOS_Course_4
 
iOS_Course_3
iOS_Course_3iOS_Course_3
iOS_Course_3
 
iOS_Course_1
iOS_Course_1iOS_Course_1
iOS_Course_1
 

iOS_Course_11