2010-07-15 60 views

Respuesta

6

UITableView no está diseñado para múltiples columnas. Pero puede simular columnas creando una clase UITableCell personalizada. Cree su celda personalizada en Interface Builder, agregando elementos para cada columna. Dale a cada elemento una etiqueta para que puedas referenciarlo en tu controlador.

Dé su controlador de una toma de corriente para cargar el celular de su plumín:

@property(nonatomic,retain)IBOutlet UITableViewCell *myCell;

Luego, en el método de la tabla de vista del delegado cellForRowAtIndexPath, asignar esos valores por etiqueta.

-(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; 
} 
+0

Gracias por su valiosa respuesta. pero necesito DataGrid como la vista de tabla de matriz con encabezado y registros. – sri

+0

Tal vez no entiendo lo que estás buscando, pero podrías usar este enfoque para crear algo que parezca una tabla de Excel. Puede agregar una vista al encabezado de sección para sus encabezados. Si está buscando una solución fácil que cree automáticamente una vista que se parezca a una matriz que puede completar con datos, no sé nada. –

+0

Me gustaría replicar esto por mí mismo, ¿pueden dar más detalles sobre el tipo de clase que debería tener esta celda personalizada en IB? Para que la nueva célula que carga para cada fila se asigne a su punto de venta, ¿el NIB MyTableView contiene una celda de vista de tabla de una clase personalizada que hereda de UITableViewCell y tiene una toma de MyCell? El uso que usted hace del propietario: aquí parece sugerir que la celda cargada en realidad es del tipo UITableViewController, lo que parece extraño. –

0

Puede utilizar múltiples UITableViews una al lado de la otra. Eso debería verse bien con células personalizadas. Entonces puede transformarlo hasta que se vea como un DataGrid. ;-)

0

He creado UIGridView en el que una sola UITableViewCell contiene más de una celda. Puede conocer el código fuente UIGridView.

Mi consejo es no codificarlo en su UIViewController. Construir un control externo y usarlo en UIViewController es una forma mucho mejor.

O simplemente puede usar la mía :)