Estoy haciendo una aplicación que necesita la expansión de las células onclick para mostrar más detalles. He usado una celda personalizada y las agregué a una vista de UItable. Cuando hago clic en la celda, se anima bien y baja y cuando vuelvo a hacer clic sube, esto se hace cambiando la altura de la celda. El tamaño real de la celda personalizada es más grande que la celda que normalmente muestra. Cuando hago clic en la celda, se muestra la celda completa. El único problema que estoy teniendo es el desbordamiento de los datos. estos datos deben estar ocultos cuando la celda no está seleccionada. Solo cuando se selecciona se deben mostrar estos datos.Desbordamiento de células UItable ios
Me referí a diferentes articals, intenté cambiar la configuración de color encuadernado no funcionó para mí. Tengo el mismo tipo de problema planteado en esta pregunta iphone uitablecellview overflow, intenté la respuesta pero no funcionó.
Todo lo que necesito es cómo ocultar la parte inferior de la celda personalizada cuando no está extendida, y ¡muéstrela cuando esté extendida ...!
Estos son mis capturas de pantalla
Cuando se carga Cuando hago clic en una celda] Cuando hago clic en la segunda celda
Cuando hago clic en la celda de la cual ya está expandido Estos son los códigos de corte que he usado ....
// Declaring the SearchResultTable.
CGRect filterFrame = CGRectMake(0,31, 320, 400);
self.searchResultTable = [[UITableView alloc] initWithFrame:filterFrame];
self.searchResultTable.dataSource = self;
self.searchResultTable.delegate = self;
self.searchResultTable.backgroundColor = [UIColor whiteColor];
self.searchResultTable.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
self.searchResultTable.separatorColor = [UIColor lightGrayColor];
[self.view addSubview:self.searchResultTable];
//Adding cells
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"ExpandedSearchResultTableCell";
ExpandedSearchResultTableCell *cell = (ExpandedSearchResultTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell.contentView.clipsToBounds = YES;
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ExpandedSearchResultTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.productNameLable.text = @"Only this should be shown";
cell.productListLabel.text = @"This Should be hidden.. Only shown when expanded";
[email protected]"This Should be hidden.. Only shown when expanded";
cell.productTargetLable.text= @"This Should be hidden.. Only shown when expanded";
[email protected]"This Should be hidden.. Only shown when expanded";
[email protected]"This Should be hidden.. Only shown when expanded";;
return cell;
}
//on click event
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Deselect cell
[tableView deselectRowAtIndexPath:indexPath animated:TRUE];
// Toggle 'selected' state
BOOL isSelected = ![self cellIsSelected:indexPath];
// Store cell 'selected' state keyed on indexPath
NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
[selectedIndexes setObject:selectedIndex forKey:indexPath];
// This is where magic happens...
[searchResultTable beginUpdates];
[searchResultTable endUpdates];
}
//Getting the height depending on expanded or not
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// If our cell is selected, return double height
if([self cellIsSelected:indexPath]) {
return kCellHeight * 3.0;
}
// Cell isn't selected so return single height
return kCellHeight;
}
Ya he completado la parte de la animación ... Solo necesito saber cómo ocultar la parte determinada de la celda ... De todos modos, me referiré a tus enlaces ... Ya he comprobado el primero – Gihan