Wie erstellt man mehrere Spalten in einer Zeile der Tabellenansicht? es wäre dankbar, wenn sie irgendwelche proben geben oder bitte richtung mich!Mehrere Spalten in der Tabellenansicht
Antwort
UITableView ist nicht wirklich für mehrere Spalten ausgelegt. Sie können jedoch Spalten simulieren, indem Sie eine benutzerdefinierte UITableCell-Klasse erstellen. Erstellen Sie Ihre benutzerdefinierte Zelle im Interface Builder und fügen Sie Elemente für jede Spalte hinzu. Geben Sie jedem Element ein Tag, damit Sie es in Ihrem Controller referenzieren können.
Geben Sie Ihren Controller einen Ausgang die Zelle aus Ihrer Feder zu laden:
@property(nonatomic,retain)IBOutlet UITableViewCell *myCell;
Dann in der Tabelle cellForRowAtIndexPath
Methode Sicht delegiert, diese Werte nach Tag zuweisen.
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
// load cell from nib to controller's IBOutlet
[[NSBundle mainBundle] loadNibNamed:@"MyTableCellView" owner:self options:nil];
// assign IBOutlet to cell
cell = myCell;
self.myCell = nil;
}
id modelObject = [myModel objectAtIndex:[indexPath.row]];
UILabel *label;
label = (UILabel *)[cell viewWithTag:1];
label.text = [modelObject firstField];
label = (UILabel *)[cell viewWithTag:2];
label.text = [modelObject secondField];
label = (UILabel *)[cell viewWithTag:3];
label.text = [modelObject thirdField];
return cell;
}
Sie können mehrere UITableViews Seite an Seite verwenden. Das sollte bei benutzerdefinierten Zellen in Ordnung sein. Sie können es also so lange transformieren, bis es wie ein DataGrid aussieht. ;-)
Ich habe UIGridView erstellt, in denen eine einzelne UITableViewCell mehr als eine Zelle enthält. Sie können den Quellcode von UIGridView lernen.
Mein Rat ist, es nicht in Ihrem UIViewController zu codieren. Erstellen Sie ein externes Steuerelement und verwenden Sie es in UIViewController ist ein viel besserer Weg.
Oder Sie können einfach verwenden Mine :)
- 1. Mehrere Textansichten in Tabellenansicht verwalten
- 2. Einstellen der Spaltenbreite in der Tabellenansicht
- 3. CheckBox in der Tabellenansicht
- 4. Schienen kombinieren mehrere Spalten in der Suche
- 5. Abfrage der Vereinigungsverbindung in mehrere Spalten zurückgeben
- 6. iPad: Tabellenansicht mit mehreren fließenden Spalten möglich?
- 7. Konvertieren einzelner Spalten mehrere Zeilenwerte in mehrere Spalten Einzelwerte
- 8. Javafx-Tabellenansicht zeigt keine Daten in allen Spalten
- 9. Wählen Sie mehrere Spalten in mehrere Variablen
- 10. Mehrere Spalten in mehrere Zeilen teilen
- 11. JavaFX Tabellenansicht mehrere Auswahl überspringt manchmal einen der Artikel
- 12. iOS - Suche in der Tabellenansicht
- 13. Schaltfläche in der Tabellenansicht Zelle
- 14. Programmgesteuertes Zurücksetzen in der Tabellenansicht
- 15. Mehrere Spalten in dplyr erstellen
- 16. aggregieren mehrere Spalten in data.table
- 17. Anzeige mehrere Spalten in Select2
- 18. SQL mehrere Spalten in einer
- 19. Mehrere eindeutige Spalten in SQLite
- 20. Mehrere Spalten in Cassandra-Tabellen
- 21. Mehrere Spalten - HTML
- 22. Attributattribute für mehrere Spalten
- 23. Pandas extrahieren mehrere Spalten
- 24. Suche über mehrere Spalten
- 25. RowFilter.regexFilter mehrere Spalten
- 26. MySQL mehrere Spalten löschen
- 27. MSSQL Count mehrere Spalten
- 28. SQL Update - mehrere Spalten
- 29. PowerQuery: Mehrere Spalten hinzufügen
- 30. Kontrollkästchen Schaltfläche in der Tabellenansicht in iPhone
Vielen Dank für Ihre wertvolle Antwort. aber ich brauche als DataGrid wie Matrix Tabellenansicht mit Header und Aufzeichnungen .. – sri
Vielleicht verstehe ich nicht, was Sie suchen, aber Sie könnten leicht diesen Ansatz verwenden, um etwas zu erstellen, das wie eine Excel-Tabelle aussieht. Sie können eine Ansicht zum Abschnitt Header für Ihre Header hinzufügen. Wenn Sie nach einer einfachen Lösung suchen, die automatisch eine Ansicht erstellt, die wie eine Matrix aussieht, die Sie einfach mit Daten füllen können, weiß ich nichts. –
Ich möchte dies für mich selbst replizieren, können Sie näher auf die Art der Klasse, die diese benutzerdefinierte Zelle in IB sein sollte? Damit diese neue Zelle, die Sie für jede Zeile Ihrer Filiale hinzufügen, geladen wird, enthält die MyTableView-NIB eine Tabellenansichtszelle einer benutzerdefinierten Klasse, die von UITableViewCell erbt und über eine MyCell-Steckdose verfügt? Ihre Verwendung von owner: self scheint hier darauf hinzudeuten, dass die geladene Zelle tatsächlich vom Typ UITableViewController ist, was merkwürdig erscheint. –