UITableView – tabellvyer
Applikationsutveckling för iPhone och iPad, 725G60
UITableView
•
Exempel
•
Hur funkar den
•
•
•
delegate och datasource
•
cellForRowAtIndexPath
•
tableView:numberOfRowsInSection:
•
och många fler
Konstruera UITableViews med Storyboards
•
Statiska
•
Dynamiska
Demo
UITableViews
UITableViews
•
Innehåller vertikalt ordnade celler
•
•
•
Varje cell har en egen vy
Återanvänder celler
•
Minimal minnesanvändning
•
Maximal responsivitet
Flexibilitet!
•
Alla celler kan vara olika
•
Headers/footers/sektioner
•
Editing mode
•
Multi-row selection
UITableViews
•
Ärver från UIScrollView
•
Styrs generellt/helst av en UITableViewController
•
En UIViewController med protokollen
UITableViewDelegate & UITableViewDataSource
•
Några extra properties och metoder exempel
refreshControl & clearsSelectionOnViewWillAppear
•
Celler är instanser av UITableViewCell
•
Hämtar data från UITableViewDataSource
•
Hämtar beteende från UITableViewDelegate
•
Celler är uppdelade i sektioner
•
Varje sektion har en valbar header och footer
UITableViews
•
Alla celler har en reuseIdentifier- sträng
•
Tabellen ropar på cellForRowAtIndexPath när en
ny cell behövs
Cell 7
•
dataSource-implementeraren hämtar rätt sorts
Reuse queue
cell från tabellens reuse queue
•
•
Om kön är tom skapar tabellen en ny cell
När cell åker ur bild hamnar den i sin sorts reuse
queue
Cell17
UITableViews
•
UITableViewDataSource
•
Hämtar data åt tabellen
•
Två obligatoriska metoder
•
numberOfRowsInSection – Hur många celler i varje sektion?
•
cellForRowAtIndexPath – Sätt upp och returnera en cell
•
numberOfSectionsInTableView – Hur många sektioner finns? (default 1)
•
titleFor Header/Footer InSection
•
commitEditingStyle: forRowAtIndexPath – hör ihop med ändring (kommer senare)
•
och många fler
UITableViews
•
UITableViewDelegate
•
Sätter beteende för tabellen
•
didSelectRowAtIndexPath – Körs när en cell markeras
•
viewFor Header/Footer inSection – Anger egna vyer för headers/footers
•
editingStyleForRowAtIndexPath – Hur ska cellen bete sig i editing mode?
•
och många fler
UITableViews
•
Hur gör jag?
•
Absolut lättast med storyboard
•
•
Static
•
Används för ett statiskt antal celler, tänk inställningar applikationen
•
Behöver ej implementera UITableViewDataSource!
Dynamic
•
Används för ett dynamiskt antal celler
•
Bygg olika sorts prototypceller
•
Hämta rätt cell för rätt rad i din UITableViewController
UITableViews
•
Demo
Läs mer
•
UITableView klassreferens
•
UITableViewController klassreferens
•
UITableViewCell klassreferens
•
View Controller Programming Guide for iOS