uitableviewcontroller tutorial example cellforrowat iphone uitableview

iphone - tutorial - La fuente UITableViewCell no cambia



uitableview tutorial swift 4 (6)

@ Jason Coco:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { }

Estoy tratando de personalizar la fuente de un UITableViewCell usando el siguiente código para cuando se completa la vista de tabla.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *MyIdentifier = @"MyIdentifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier]; } // Set up the cell int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1]; NSString *temp = [[NSString alloc] initWithString:[[stories objectAtIndex: storyIndex] objectForKey: @"title"]]; cell.textLabel.text = temp; [[cell textLabel] setTextColor:[UIColor colorWithRed:154.0/255.0 green:14.0/255.0 blue:2.0/255.0 alpha:1]]; [[cell textLabel] setFont:[UIFont systemFontOfSize:12.0]]; return cell; }

Por mi vida, no sé por qué no cambiará la fuente. También el código anterior funciona bien si yo código duro en lo que es el texto de la celda como cell.textLabel.text = @"TEST";

¿Alguna sugerencia? ¡Gracias!


En primer lugar, deberías autorelease tu celular. Estás perdiendo la memoria como locamente presentemente.

En segundo lugar, debe actualizar la fuente en tableView:willDisplayCellForRow:atIndexPath: Si está utilizando una vista de tabla estándar, realizará cambios en sus celdas (en momentos aleatorios) y tendrá que hacer cosas como cambios de fuente, color de fondo, etc. en la vista de tableView:willDisplayCellForRow:atIndexPath: lugar de en la fuente de datos método.

Vea también este hilo: ¿Qué es - [UITableViewDelegate willDisplayCell: forRowAtIndexPath:] para?


Solo puedes probar con el siguiente código.

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *cellString = @"cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellString]; if(cell == nil){ cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:cellString]; } cell.textLabel.text = values; cell.textLabel.textColor = [UIColor colorWithRed:154.0/255.0 green:14.0/255.0 blue:2.0/255.0 alpha:1]; cell.textLabel.font = [UIFont systemFontOfSize:12.0]; return cell; }


Tratar,

cell.textLabel.font = [UIFont systemFontOfSize:12.0]; cell.detailTextLabel.font = [UIFont systemFontOfSize:10.0];


muy simple,

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { cell.textLabel.textColor = [UIColor grayColor]; //redColor greenColor etc. }


willDisplayCell: forRowAtIndexPath: se puede usar para modificar el color de fondo de la celda, la vista de contenido, etc., excepto la propiedad backgroundColor de la etiqueta de texto y la etiqueta de texto de detalle

Siempre es una buena práctica hacer estas modificaciones en el método anterior.