Pregunta

Me gustaría crear una vista de cuadrícula en mi aplicación para el iPhone similar a la mostrada en las fotos de iPads aplicación. ¿Hay una biblioteca o marco disponible para añadir este tipo de funcionalidad (no SDK)? Idealmente me gustaría desarrollar finalmente una versión del iPad de la aplicación, donde la red sería de 3 artículos anchos en formato vertical y 4 en el paisaje, sin embargo, por el momento me gustaría 2 artículos de ancho en el retrato y 3 de ancho en el paisaje.

La única manera que puedo pensar en hacer esto es creando una subclase UITableView con cubetas a medida que crea las 2 o 3 artículos. Sin embargo, esto parece complicado y estoy seguro de que hay una manera mejor.

Un elemento típico tendrá una imagen, la etiqueta y el botón -. Nada demasiado complicado

¿Fue útil?

Solución

Puede seguir utilizando el UITableView para esto y que no habría necesidad de una subclase. Como has dicho todo lo que tiene que hacer es crear su propia celda costumbre que no es complicado. No desordenado en absoluto:)

Otros consejos

En iOS 6 y por encima recomiendo UICollectionView y PSTCollectionView .

  

El objetivo es utilizar PSTCollectionView en iOS 4/5 como punto de retorno y   cambiar a UICollectionView en iOS6. Incluso utilizamos ciertos trucos de tiempo de ejecución   para crear UICollectionView en tiempo de ejecución para versiones anteriores de iOS.   Lo ideal es que simplemente enlazar los archivos y todo funciona en los más antiguos   sistemas.

En el año 2010 me recomendó AQGridView

Soy consciente de que esto es muy antiguo, pero yo estaba buscando respuesta a esta y probado varias soluciones. He encontrado GMGridView fue una de las mejores soluciones, con menos errores. Compruébelo usted mismo en https://github.com/gmoledina/GMGridView .

Para hacer simple punto de vista de cuadrícula en la vista de tabla crear la clase "GridViewCell" y en el encabezado del archivo de complemento:

@interface GridViewCell : UITableViewCell

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

@end

en el archivo .m añadir este código:

#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

y cuando se crea la tabla de uso de la nueva clase "GridView" en cellForRowAtIndexPath delegado:

- (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 parece ser la mejor manera alrededor. Lo puede encontrar aquí .

Tiene los métodos similares a los de UITableView. Las células se pueden personalizar según sea necesario.

Yo recomiendo usar UITableViewCells personalizados. En iOS 5 que no tiene que subclasificarlos. Sólo tiene que añadir un tableView a su proyecto, añadir unas células prototipo (= celda personalizado) usando Xcode a la tableView, les dan un identificador único y utilizar este identificador en cellForRowAtIndexPath quitar de la cola y crear instancias de su celda personalizado. A continuación, establezca la celda y lo devuelve.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top