2009-12-22 7 views
5

He creado una célula usandoUITableView parpadeo encabezado cuando reutilizamos el identificador de celda

static NSString *CellIdentifier = @"TweetListUserName"; 

CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
     cell = [[[CustomTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]autorelease] ; 
} 

y se utiliza el código siguiente para configurar un encabezado de sección:

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

     UIView* customView = [[[UIView alloc] initWithFrame:CGRectMake(0.0, -4.0, 320.0, 67.0)]autorelease]; 
     [customView setOpaque:YES]; 
     UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(-2.0, -4.0, 328.0, 67.0)]; 
     [image setImage:[UIImage imageNamed:@"header-msg.png"]]; 
     [image setOpaque:YES]; 
     [customView addSubview:image]; 

     UILabel *label1 =[[UILabel alloc] initWithFrame:CGRectMake(10, 5, 100, 12)]; 
     label1.text [email protected]"TWEETS MATCHING:"; 
     label1.textAlignment=UITextAlignmentLeft; 
     [label1 setTextColor:[UIColor grayColor]]; 
     [label1 setFont:[UIFont fontWithName:@"Helvetica" size:9]];; 
     [label1 setBackgroundColor:[UIColor clearColor]]; 
     [customView addSubview:label1]; 
     [label1 release]; 

     UILabel *label2 =[[UILabel alloc] initWithFrame:CGRectMake(10, 6, 315, 50)]; 
     label2.text =usernametag; 
     label2.textAlignment=UITextAlignmentLeft; 
     [label2 setTextColor:[UIColor blackColor]]; 
     [label2 setFont:[UIFont fontWithName:@"Helvetica-Bold" size:20]]; 
     [label2 setBackgroundColor:[UIColor clearColor]]; 
     [customView addSubview:label2]; 
     [label2 release]; 


     return customView; 

    } 

Sin embargo, cuando rápidamente me desplazo la tabla parpadea el encabezado en casi todos los casos. ¿Cómo puedo evitar este parpadeo?

Respuesta

0

Hola, creo que debes probar si ya está configurado. De la forma en que lo tienes ahora ejecutará el código anterior cada vez que te desplaces, lo que significa que se establecerá bastante.

+0

en realidad no se menciona en el código, pero estoy lanzando la vista personalizada – crystal

+0

Esta no es la causa de que el encabezado de esa celda parpadee. Sé que esta es una vieja pregunta ... pero ahora me está sucediendo a mí. – Jann

+0

¿Está llamando [tableView reloadData] a cualquier lugar que se llame repetidamente? – RickiG

0

He tenido un problema similar.

En mi caso, el motivo estaba en la celda de la tabla personalizada. Dentro de mi celda de tabla personalizada utilicé un objeto UITExtView con su propiedad scrollEnabled establecida en NO y la propiedad editable establecida en NO.

El probelma estaba vinculado a scrollEnabled = NO. Con scrollEnabled = YES no tengo problemas.

Sin embargo, como UITextView sin edición y el desplazamiento no es muy diferente de una UILabel, que sustituyó a la UITextView con UILabel numberOfLines ajuste a 0.

No me pregunte por qué. Algo así funcionó de esa manera. :)

Cuestiones relacionadas