Video: Grundlagen in Numbers von iWork 2025
Es kann vorkommen, dass Sie Zellinhalte in Ihrer iOS-App anzeigen müssen. Um den Zelleninhalt anzuzeigen, wird dem Delegaten die Nachricht tableView: cellForRowAtIndexPath gesendet. Fügen Sie diese Methode zu DestinationController hinzu. m.
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {statischer NSString * CellIdentifier = @ "DestinationCell"; UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier]; NSDictionary * destinationData = Selbst. destinationsArray [indexPfad. Reihe]; NSAttributedString * attributedString = [[NSAttributedString-Zuweisung] initWithString: destinationData [@ "Zielname"] Attribute: @ {NSFontAttributeName: [UIFont systemFontOfSize: 17. 0f], NSForegroundColorAttributeName: [UIColor whiteColor]}]; Zelle. TextLabel. attributedText = attributedString; return cell;}
Sie sehen, dass eines der ersten Dinge, die Sie tun, darin besteht, festzustellen, ob irgendwelche Zellen, die Sie verwenden können, herumliegen. Sie erinnern sich vielleicht daran, dass eine Tabelle zwar einige Zeilen gleichzeitig auf dem Bildschirm des iPad anzeigen kann, der Tisch selbst aber durchaus viel mehr Platz bietet.
Eine große Tabelle kann jedoch viel Speicher verbrauchen, wenn Sie Zellen für jede Zeile erstellen. Glücklicherweise sind Tabellenansichten darauf ausgelegt, Zellen wiederzuverwenden. Wenn die Zellen einer Tabellenansicht vom Bildschirm wegrollen, werden sie in eine Warteschlange von Zellen platziert, die zur Wiederverwendung verfügbar sind. Wenn auf dem System nur wenig Arbeitsspeicher zur Verfügung steht, werden in der Tabellenansicht die Zellen in der Warteschlange gelöscht. Solange jedoch ein Speicher vorhanden ist, hält sie sich an diese an, falls Sie sie erneut verwenden möchten.
Zellenkennung verwendet werden kann, um anzugeben, welchen Zellentyp Sie verwenden: static NSString * CellIdentifier = @ "DestinationCell";
Es ist wichtig, dass der CellIdentifier und das Identifier-Feld der Prototypzelle in Schritt 18 gleich sind. Wenn dies nicht der Fall ist, erhalten Sie keine transparente Prototypzelle, die Sie im Storyboard angegeben haben.
Tabellensichten unterstützen mehrere Zellentypen, wodurch der Identifikator erforderlich wird. In diesem Fall benötigen Sie nur einen Zellentyp, aber manchmal möchten Sie möglicherweise mehrere Zellen mit unterschiedlichen Layouts und Formaten unterbringen. Wenn beispielsweise nur einige Zellen ein Offenlegungsdreieck haben sollten, würden Sie wahrscheinlich zwei Prototypen verwenden - einen mit und einen ohne das Dreiecksymbol.
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
Hiermit wird festgelegt, ob Zellen des gewünschten Typs verfügbar sind. Wenn keine Zellen herumliegen, erstellt diese Methode eine Zelle unter Verwendung der von Ihnen angegebenen Zellenkennung. Sie haben jetzt eine Table View-Zelle, in der Sie zur Tabellenansicht zurückkehren können.
Sie haben mehrere Möglichkeiten, die Tabellenansichtszelle zu formatieren. Obwohl Sie UITableViewCellStyleDefault verwenden werden, können Sie aus einer Reihe verschiedener Stile wählen, die wie folgt aufgelistet sind (die Schlüsselwörter im Einblendmenü "Stil" auf der Registerkarte "Attribute" des Interface Builder werden in Klammern angezeigt):
UITableViewCellStyleDefault: Gibt eine einfache Zelle mit einer Textbeschriftung (schwarz und linksbündig) und einer optionalen Bildansicht. [Basic]
-
UITableViewCellStyleValue1: Gibt eine Zelle mit einer linksbündigen schwarzen Textbeschriftung auf der linken Seite der Zelle und einer rechtsbündigen Textbeschriftung mit einem kleineren grauen Text auf der rechten Seite an. (Die App "Einstellungen" verwendet diesen Zellstil.) [Right Detail]
-
UITableViewCellStyleValue2: Gibt eine Zelle mit rechtsbündiger blauer Textbeschriftung auf der linken Seite der Zelle und rechts angeordneter schwarzer Textbeschriftung auf der rechten Seite an. Seite der Zelle. [Left Detail]
-
UITableViewCellStyleSubtitle: Gibt eine Zelle mit einer linksbündigen Textbeschriftung oben und einer linksbündig angeordneten Textbeschriftung darunter in einem kleineren grauen Text an. (Die Musik-App verwendet Zellen in diesem Stil.) [Untertitel]
-
Mit der Formatierung legen Sie die Label-Eigenschaften fest, an denen Sie interessiert sind.
Sie entpacken den Namen für jedes Ziel, das Sie gespeichert haben, indem Sie in jedem Zielwörterbuch auf den Zielnamen zugreifen. Sie tun dies, indem Sie auf das Wörterbuch in dem (gespeicherten) destinationArray zugreifen, das den Sektionen und der Zeile in indexPath entspricht, das die Abschnitts- und Zeileninformationen in einem einzelnen Objekt enthält.
Um die Zeile oder den Abschnitt aus einem NSIndexPath zu holen, müssen Sie nur seine Abschnittsmethode (indexPath. Section) oder seine Zeilenmethode (indexPath. Row) aufrufen, von denen jede ein int zurückgibt:
NSDictionary * destinationData = ZieleArray [IndexPfad. Reihe];
Erstellen Sie als Nächstes eine attributierte Zeichenfolge, die sowohl Zeichenketten als auch Attribute wie Schriftarten, Farben und sogar Kerning verwalten kann:
NSAttributedString * attributedString = [[NSAttributedString alloc] initWithString: destinationData [@ "Destination & # x200B; Name "] -Attribute: @ {NSFontAttributeName: [UIFont systemFontOfSize: 17. 0f], NSForegroundColorAttributeName: [UIColor whiteColor]}];
Verwenden Sie nun diese attributierte Zeichenfolge, um die Textbeschriftung der Zelle zu formatieren:
Zelle. TextLabel. attributedText = attributedString;
Geben Sie schließlich die formatierte Zelle mit dem Text zurück, den sie in dieser Zeile anzeigen muss:
Rückgabezelle;