Frage

Ich verwende folgende Methode in meiner Anwendung:

- (UITableViewCell *)tableView:(UITableView *)tblView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Bei diesem Verfahren wird durch indexPath.row mit I die Zeilennummer jeder Zeile erhalten.

Aber ich mag den Zugriff auf eigentlich die Zelle in dieser Reihe und einige Formatierung auf dieser Zelle nur.

Bitte leite mich.

War es hilfreich?

Lösung

Vielleicht gibt es ein Missverständnis. Die Methode, die Sie zitieren sollte der Tableview sagen, die Reihe zu diesen indexPath angezeigt werden soll. Also, wenn die Tableview für diese Methode fragen, tut es so, weil es in diesem indexPath keine Zeile ist noch.

Der Template-Code wird eine neue Zelle erzeugen oder aus der Warteschlange entfernt ein:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

     static NSString *CellIdentifier = @"Cell";

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) {
              cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
     }

Sie können dann cell Zugriff auf den Inhalt jeder Zelle zu konfigurieren oder fügen Sie Inhalt in die content.

Wenn Sie manipulieren die Formatierung einer Zelle auf einer Pro-Reihe-Basis (zum Beispiel der Farbe des cell.textLabel) Sie sollten dies tun, in der folgenden Delegatmethode:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

Andere Tipps

Während die anderen Antworten werden gut funktionieren, aber es wird nur die Zelle ändern, die der Benutzer geklopft. Für meinen Fall wollte ich auch die anderen Zellen ändern. Nach der Suche um, versuchte ich:

[[tableView cellForRowAtIndexPath:5 setAccessoryType:UITableViewCellAccessoryNone];

Das funktioniert nicht, weil IndexPath nicht eine ganze Zahl ist. (Indexpath.row ist, jedoch). Also, auf das Dokument suchen, fand ich heraus, dass wir NSIndexPath verwenden können, um eine Zeile in kodieren NSIndexPath Wert. Hier ist der Arbeits Code:

[[tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:5 inSection:0]] setAccessoryType:UITableViewCellAccessoryNone];

Auf diese Weise können Sie die Zelle zugreifen überall, zu jeder ROW / SECTION, sofern Sie das Tableview Objekt haben.

Hoffe, das hilft jemand.

Sie können auf eine sichtbar Zelle mit UITableView -cellForRowAtIndexPath Methode. Aus UITableView Referenz:

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
  

Rückgabewert
Ein Objekt repräsentiert ein   Zelle der Tabelle oder null, wenn die Zelle   nicht sichtbar oder indexPath ist aus   Bereich.

Allerdings (IMO) cellForRowAtIndexPath ist der beste Ort für eine Zelle Setup.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top