2011-04-02 12 views
5

soy nuevo en la programación de iOS. Estoy desarrollando una aplicación para un Sistema de gestión de cursos que tiene una vista de tabla para navegar entre diferentes cursos. Quiero agregar botones a cada sección de la tabla en lugar de tener filas.UITableView agregue botones en la sección

Por ejemplo, si el curso CS101 tiene 5 elementos debajo, quiero que aparezcan 5 íconos (UIButton) cuando hago clic en el encabezado CS101 ordenado en 3 filas con 2,2 y 1 botón que representa los cinco elementos.

¿Cómo puedo hacer esto? Si esto es posible?

¡Muchas gracias! Satyam

Respuesta

21

Sí, es posible. Debe utilizar los métodos de delegado de UITableView y agregar Vista con todos los botones en el encabezado TableView.

Primero configure al Delegado & Fuente de datos de UITableView luego proceda con el siguiente código.

Para esto, se puede seguir el código de abajo:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
// create the parent view that will hold header Label 
UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 44.0)]; 

// create the button object 
UIButton * headerBtn = [[UIButton alloc] initWithFrame:CGRectZero]; 
headerBtn.backgroundColor = [UIColor clearColor]; 
headerBtn.opaque = NO; 
headerBtn.frame = CGRectMake(10.0, 0.0, 100.0, 30.0); 
[headerBtn setTitle:@"<Put here whatever you want to display>" forState:UIControlEventTouchUpInside]; 
[headerBtn addTarget:self action:@selector(ActionEventForButton:) forControlEvents:UIControlEventTouchUpInside]; 
[customView addSubview:headerBtn]; 

return customView; 
} 

Una vez que se añade una vista a la cabecera a continuación, ajuste la altura de cabecera ya que por defecto sería algo 20., por lo que necesita para ajustar de acuerdo con su View HEight que se ha agregado al encabezado.

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
return 100.0; 
} 

esperanza que hay sin duda le ayudará mucho ... :)

+0

¡Gracias esto ayudó! Subclasicé UITableViewCell y creé mis propias celdas de tabla con dos botones usando el constructor de interfaz y luego utilicé una gran cantidad de delegados de UITableViewDelegate y DatasourceDelegate. – Satyam

+0

Sí. ...Gracias :) –

1

para ello se tiene que devolver un UIView en este delegado que contienen una UIButton

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 

En la acción de este botón puede insertar el número de filas que desea visualizar como iconos y las nuevas filas insertadas contendrán un UIButton. Para insertar filas, puede usar

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation 
Cuestiones relacionadas