Pregunta

Problema: El separador entre las células en una vista de tabla aparece sólo para aquellas células que se muestran cuando la vista de las cargas, y sólo en tiempo de carga. Cuando el tableview se desplaza hacia abajo, las células desplazado a la vista no muestran separador entre ellos, a continuación, cuando el tableview se desplaza hacia arriba, las células iniciales no muestran separador.

Detalles de: tengo un UITableView a la que estoy añadiendo UITableViewCells estándar. Estas células se crean con initWithFrame, marco height = 90 píxeles. Estoy agregando una vista personalizada creada a partir de una punta a la vista de esta célula, altura = 90 píxeles. La altura de la celda se especifica en 90px en tableView: heightForRowAtIndexPath:.

¿Alguien ha experimentado este comportamiento?

¿Fue útil?

Solución

Tenía la sensación de la solución a esto sería sencillo ... Hice la altura de mis células 91px y aparecen las líneas de separación como deberían de desplazamiento.

Otros consejos

No podía utilizar la solución de Douglas porque mis cuadros tienen una enorme cantidad de células y se convertirían en prácticamente inutilizable en el teléfono viejo. La reutilización de las células es clave para el rendimiento.

Pero, he conseguido solucionar el problema utilizando un separador transparente y añadir mi propia en el contentView de la célula, de la siguiente manera:

yourTable.separatorColor = [UIColor clearColor];
separatorView.frame = FactRectMake(0, rowHeight-1, appFrame.size.width, 0.2);

Yo tenía el mismo problema, pero he usado una solución diferente. Mis separadores fueron desapareciendo porque estaba limpiando mi celular en:

for (UIView *eachView in self.subviews) {
    [eachView removeFromSuperview];
}

Esto elimina la vista del separador, así!

En su lugar, le asigna una etiqueta para cada uno de mis puntos de vista de aduana (tres etiquetas) justo antes de agregarlos a la vista substitución:

tempFirstNameLabel.tag = 100;
self.firstNameLabel = tempFirstNameLabel;
[self addSubview:self.firstNameLabel];

Luego, cuando me aclaré la celda, me acaba de quitar los puntos de vista:

for (int i = 100; i<103; i++) {
    UIView *eachView = [self viewWithTag:i];
    [eachView removeFromSuperview];
}

Espero que esto ayude! Esto también evita los problemas de gestión de memoria que la solución de @Douglas Smith planteó.

Debe establecer separador de ninguna línea y luego sola vez

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    // it is a bug in iOS 7
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top