sirve que para cuadricula camara iphone uitableview ipad

que - Vista de cuadrícula en iPhone SDK



cuadricula camara iphone ios 11 (6)

Me gustaría crear una vista de cuadrícula en mi aplicación de iPhone similar a la que se muestra en la aplicación de fotos de iPad . Sé que el iPhone 3.2 SDK está bajo NDA, pero hay una biblioteca o marco disponible para agregar este tipo de funcionalidad (no SDK). Idealmente, me gustaría desarrollar una versión para iPad de la aplicación, donde la cuadrícula tendría 3 elementos de ancho en vertical y 4 en horizontal, sin embargo, por el momento quisiera 2 elementos de ancho en vertical y 3 de ancho en horizontal.

La única forma en que puedo pensar en hacer esto es mediante la subclasificación de UITableView y tener una celda personalizada que cree los 2 o 3 elementos. Sin embargo, esto parece desordenado y estoy seguro de que hay una mejor manera.

Un elemento típico tendrá una imagen, una etiqueta y un botón, nada demasiado complicado.

Gracias


Aún puedes usar el UITableView para esto y no necesitarías subclasificarlo. Como dijiste, todo lo que tienes que hacer es crear tu propia celda personalizada, lo cual no es complicado. No desordenado en absoluto :)


NRGridView parece ser la mejor manera de evitarlo. Puedes encontrarlo here .

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


Para hacer una vista de cuadrícula simple en su vista de tabla, cree la clase "GridViewCell" y agregue en el archivo de encabezado:

@interface GridViewCell : UITableViewCell @property (nonatomic, strong) UIButton *column1; @property (nonatomic, strong) UIButton *column2; @property (nonatomic, strong) UIButton *column3; @end

en el archivo .m agregue 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 cree su tabla, use la nueva clase "GridView" en delegate 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; }


Para iOS 6 y superior recomiendo UICollectionView y PSTCollectionView .

El objetivo es utilizar PSTCollectionView en iOS 4/5 como alternativa 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. Idealmente, simplemente vinculas los archivos y todo funciona en sistemas más antiguos.

En el año 2010 recomendé AQGridView


Soy consciente de que esto es muy antiguo, pero estaba buscando una respuesta para esto y probé varias soluciones. Descubrí que GMGridView era una de las mejores soluciones, con menos errores. Compruébelo en https://github.com/gmoledina/GMGridView .


Yo recomendaría usar UITableViewCells personalizados. En iOS 5 no tienes que subclasificarlos. Simplemente agregue un tableView a su proyecto, agregue un prototipo de celdas (= celda personalizada) usando Xcode a la tableView, déles un identificador único y use este identificador en cellForRowAtIndexPath para poner en cola e instanciar su celda personalizada. Luego configura la celda y devuélvela.