Video: Hvordan bruke summer knappen i Excel - Norsk 2016 / 2013 / 2010 2025
Det kan komme en tid når du trenger å vise celleinnhold i din iOS-app. For å vise celleinnholdet sendes delegaten din tableView: cellForRowAtIndexPath-meldingen. Legg denne metoden til DestinationController. m.
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {statisk NSString * CellIdentifier = @ "DestinationCell"; UITableViewCell * celle = [tableView dequeueReusableCellWithIdentifier: CellIdentifier]; NSDictionary * destinationData = selv. destinasjonerArray [indexPath. rad]; NSAttributedString * attributedString = [[NSAttributedString alloc] initWithString: destinasjonData [@ "Destinasjonsnavn"] attributter: @ {NSFontAttributeName: [UIFont systemFontOfSize: 17. 0f], NSForegroundColorAttributeName: [UIColor whiteColor]}]; celle. textLabel. attributedText = attributedString; returcelle;}
Du ser at en av de første tingene du gjør, er å avgjøre om noen celler du kan bruke ligger rundt. Du kan huske at selv om en tabellvisning kan vise ganske mange rader om gangen på iPad-skjermen, kan tabellen selv tenke mye mer.
Et stort bord kan spise mye minne, men hvis du lager celler for hver rad. Heldigvis er tabellvisninger utformet for gjenbruk -celler. Som en tabellvisning ruller celler fra skjermen, de er plassert i en kø av celler som er tilgjengelige for å bli gjenbrukt.
Hvis systemet kjører lavt i minnet, blir tabellvisningen fjernet fra cellene i køen, men så lenge det har noe tilgjengelig minne for dem, holder det på dem hvis du vil bruke dem igjen.
Du lager en streng som skal brukes som celleidentifikator for å angi hvilken celletype du bruker:
statisk NSString * CellIdentifier = @ "DestinationCell";
Det er kritisk at CellIdentifier og Identifier-feltet i prototypecellen i trinn 18 er de samme. Hvis de ikke er det, får du ikke den gjennomsiktige prototypecellen du angav i storyboardet.
Tabellvisninger støtter flere celletyper, noe som gjør at identifikatoren er nødvendig. I dette tilfellet trenger du bare én celletype, men noen ganger vil du kanskje ha mer enn en for å imøtekomme celler med forskjellige layouter og formater. Hvis det for eksempel bare er noen celler som skal ha en trekant i beskrivelsen, vil du sannsynligvis bruke to prototyper - en med og en uten trepunktet.
Du spør tabellvisningen for et bestemt gjenbrukbart celleobjekt ved å sende det en dequeueReusableCellWithIdentifier: melding:
UITableViewCell * celle = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
Dette avgjør om noen av cellene av typen du vil ha, er tilgjengelige. Hvis ingen celler ligger rundt, vil denne metoden skape en celle ved hjelp av celleidentifikatoren du angav. Du har nå en tabellvisning-celle som du kan gå tilbake til i tabellvisningen.
Du har flere valg om hvordan du formaterer tabellvisningen-cellen. Selv om du skal bruke UITableViewCellStyleDefault, kan du velge mellom en rekke forskjellige stilarter, oppført som følger (søkeordene i Style-menyen i fanen Attributter i grensesnittbyggeren vises i parentes):
-
UITableViewCellStyleDefault: Gir deg en enkel celle med en tekstetikett (svart og venstrejustert) og en valgfri bildevisning. [Basic]
-
UITableViewCellStyleValue1: Gir deg en celle med en venstrejustert svart tekstetikett på venstre side av cellen og en høyrejustert tekstetikett med mindre grå tekst på høyre side. (Innstillinger-appen bruker denne stilen av cellen.) [Høyre detalj]
-
UITableViewCellStyleValue2: Gir deg en celle med en rettlinjet blå tekstetikett på venstre side av cellen og en venstre-rettet svart tekstetikett til høyre siden av cellen. [Left Detail]
-
UITableViewCellStyleSubtitle: Gir deg en celle med en venstrejustert tekstetikett over toppen og en venstrejustert tekstetikett under den i mindre grå tekst. (Musikk-appen bruker celler i denne stilen.) [Teksting]
Med formateringen ut av veien, angir du etikettegenskapene du er interessert i.
Du plukker ut navnet for hver destinasjon du har har blitt lagret ved å få tilgang til destinasjonsnavnet i hver destinasjonsordbok. Du gjør det ved å få tilgang til ordlisten i de (lagrede) destinasjoneneArray som svarer til delene og raden i indeksPath, som inneholder delen og radinformasjonen i et enkelt objekt.
For å få raden eller delen av en NSIndexPath må du bare påkalle sin seksjonsmetode (IndexPath. Section) eller radmetoden (indexPath. Rad), hvorav en returnerer en int:
NSDictionary * destinationData = destinasjonerArray [indexPath. rad];
Next, opprett en tilordnet streng som kan håndtere både tegnstrenger og attributter som fonter, farger og jevn kerning:
NSAttributedString * attributedString = [[NSAttributedString alloc] initWithString: destinasjonData [@ "Destinasjon og # x200B; Navn "] attributter: @ {NSFontAttributeName: [UIFont systemFontOfSize: 17. 0f], NSForegroundColorAttributeName: [UIColor whiteColor]}];
Bruk nå denne tilordnede strengen til å formatere cellens tekstetikett:
celle. textLabel. attributedText = attributedString;
Endelig returner den formaterte cellen med teksten den må vise i den raden:
returcelle;
