Domanda

Vorrei creare una visualizzazione a griglia nel mio iPhone app simile a quello mostrato nelle iPad foto App . C'è una biblioteca o di un quadro a disposizione per l'aggiunta di questo tipo di funzionalità (non SDK)? Idealmente vorrei sviluppare finalmente una versione iPad della app, dove la griglia sarebbe larghe 3 articoli nel ritratto e 4 nel paesaggio, ma per il momento vorrei larghe da 2 articoli nel ritratto e 3 di larghezza nel paesaggio.

L'unico modo che posso pensare di fare questo è di sottoclassi UITableView e avere un cellulare personalizzato che crea le 2 o 3 elementi. Questo però sembra disordinato e sono sicuro che ci sia un modo migliore.

Un elemento tipico avrà un quadro, l'etichetta e il pulsante -. Niente di troppo complicato

È stato utile?

Soluzione

È comunque possibile utilizzare l'UITableView per questo e non avrebbe bisogno di sottoclasse esso. Come hai detto tutto quello che dovete fare è creare il proprio cellulare personalizzato che non è complicato. Non disordinato a tutti:)

Altri suggerimenti

Per iOS 6 e sopra vi consiglio UICollectionView e PSTCollectionView .

  

L'obiettivo è quello di utilizzare PSTCollectionView su iOS 4/5 come ripiego e   passare UICollectionView su iOS6. Persino usiamo certi trucchi runtime   per creare UICollectionView in fase di esecuzione per le versioni precedenti di iOS.   Idealmente, basta collegare i file e tutto funziona sui vecchi   sistemi.

Nel 2010 ho consigliato AQGridView

Sono consapevole questo è molto vecchio ma ero alla ricerca di risposta a questa e testato diverse soluzioni. Ho trovato GMGridView è stato uno dei migliori, meno soluzioni buggy. Check it out a https://github.com/gmoledina/GMGridView .

Per rendere semplice visualizzazione a griglia in vista tabella creare classe "GridViewCell" e nell'intestazione file del componente aggiuntivo:

@interface GridViewCell : UITableViewCell

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

@end

in .m file di aggiungere questo codice:

#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

e quando si crea la tabella di utilizzare nuova classe "GridView" in delegato 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 sembra essere il miglior modo per aggirare. Lo si può trovare qui .

Ha i metodi simili come UITableView. Le cellule possono essere adattati come necessario.

Ti consiglio di utilizzare UITableViewCells personalizzati. In iOS 5 non si dispone di sottoclasse loro. Basta aggiungere un tableView al progetto, aggiungere le cellule prototipo (= cella personalizzato) utilizzando Xcode alla tableView, dare loro un identificatore univoco e utilizzare questo identificatore in cellForRowAtIndexPath per annullare l'accodamento e istanziare tuo cellulare personalizzato. Quindi impostare la cella e restituirlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top