Frage

würde Ich mag eine Grid-Ansicht in meinem iPhone App ähnlich den in den iPad Fotos gezeigt erstellen App . Gibt es eine Bibliothek oder Rahmen für das Hinzufügen dieser Art von Funktionalität (non-SDK)? Idealerweise würde ich gerne, um schließlich eine iPad-Version der App entwickeln, wo das Gitter 3 Artikel breit im Hoch- und 4 in der Landschaft sein würde, aber für die Zeit, die ich 2 Artikel breit in der Landschaft im Hoch- und 3 breit mochte zu sein.

Die einzige Möglichkeit, die ich denken kann, dies zu tun ist durch UITableView Subklassen und eine eigene Zelle, die 2 oder 3 Elemente erzeugt. Dies jedoch scheint chaotisch und ich bin sicher, dass es ein besserer Weg ist.

Ein typisches Element wird ein Bild, Label und Button -. Nichts zu kompliziert

War es hilfreich?

Lösung

Sie können immer noch die UITableView für diesen Einsatz und man braucht es nicht zu Unterklasse. Wie gesagt, Sie alles, was Sie tun müssen, ist Ihre eigene Zelle zu erstellen, die es nicht kompliziert ist. Nicht chaotisch überhaupt:)

Andere Tipps

Für iOS 6 und höher Ich empfehle UICollectionView und PSTCollectionView .

  

Das Ziel ist PSTCollectionView auf iOS 4/5 als Ausweich zu verwenden und   Umschalten auf UICollectionView auf iOS6. Wir verwenden auch bestimmte Laufzeit Tricks   UICollectionView zur Laufzeit für ältere Versionen von iOS zu erstellen.   Idealerweise verbinden Sie einfach die Dateien und alles funktioniert auf älteren   Systeme.

Im Jahr 2010 empfahl ich AQGridView

Ich bin mir bewusst, das ist sehr alt, aber ich war auf der Suche nach Antworten auf diese und testete mehrere Lösungen. Ich fand GMGridView war eines der besten, am wenigsten Buggy-Lösungen. Check it out unter https://github.com/gmoledina/GMGridView .

Um eine einfache Rasteransicht in Ihrem Tabellenansicht machen schaffen Klasse „GridViewCell“ und in Header-Datei hinzugefügt werden:

@interface GridViewCell : UITableViewCell

@property (nonatomic, strong)  UIButton *column1;
@property (nonatomic, strong)  UIButton *column2;
@property (nonatomic, strong)  UIButton *column3;

@end

in .m-Datei diesen Code hinzu:

#define CELL_WIDTH 100
#define CELL_HEIGHT 80

#import "GridViewCell.h"

@implementation GridViewCell

@synthesize column1, column2, column3;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
    column1 = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, CELL_WIDTH, CELL_HEIGHT)];
    [self addSubview:column1];
    column2 = [[UIButton alloc] initWithFrame:CGRectMake(CELL_WIDTH+ 10, 5, CELL_WIDTH, CELL_HEIGHT)];
    [self addSubview:column2];
    column3 = [[UIButton alloc] initWithFrame:CGRectMake(CELL_WIDTH + CELL_WIDTH + 15, 5, CELL_WIDTH, CELL_HEIGHT)];
    [self addSubview:column3];
}
return self;
}

@end

und beim Erstellen Ihrer Tabelle verwendet neue Klasse „Gridview“ in Delegaten cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    GridViewCell *cell = (GridViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[GridViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    [cell.column1 setBackgroundColor:[UIColor blackColor]];
    [cell.column2 setBackgroundColor:[UIColor blackColor]];
    [cell.column3 setBackgroundColor:[UIColor blackColor]];

    return cell;
}

NRGridView scheint der beste Weg, um zu sein. Sie können es finden hier .

Es hat die ähnlichen Methoden wie UITableView. Die Zellen können nach Bedarf angepasst werden.

Ich würde empfehlen, benutzerdefinierten UITableViewCells verwenden. In iOS 5 können, müssen Sie sie nicht Unterklasse. Fügen Sie einfach einen Tableview zu einem Projekt, fügen Sie eine Prototyp-Zellen (= individuelle Zelle) mit Xcode zu dem Tableview, gibt ihnen eine eindeutige Kennung und benutzen Sie diese Kennung in cellForRowAtIndexPath zu dequeue und instanziiert Ihre individuelle Zelle. Dann die Zelle gesetzt und es zurück.

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