una travesia tapon selva qué puede por pasar misterios mapa documental diario darien cruzar como colombia ios tableview reusability tableviewcell

ios - travesia - No hay ruta de índice para la celda de tabla que se reutiliza



tapon del darien documental (13)

Acabo de localizar una causa de este mensaje de error.

Un UITableViewCell estaba siendo utilizado como una vista normal. Por lo tanto, su '' indexPath no se estableció. En nuestro caso, viewForHeaderInSection devolvió viewForHeaderInSection :

Espero que esto ayude.

Chris

Esto comenzó a suceder de la nada. Cualquier idea: Código:

CUSTOMCLASSNAME (He reemplazado el nombre real de la clase ya que contiene el nombre del cliente).

Inicializando mi tableView:

[self.tableView registerClass:[CUSTOMCLASSNAME class] forCellReuseIdentifier:[self reuseIdentifier]];

En celda por fila:

Hola, el título se está imprimiendo en la consola. Este es mi cellForRow:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { AVTCheckListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[self reuseIdentifier] forIndexPath:indexPath]; [self configureCell:cell atIndexPath:indexPath]; return cell; } - (void)configureCell:(AVTCheckListTableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { ChecklistGroup *group = [self.checklistFetchedResultsController.fetchedObjects objectAtIndex:indexPath.section]; ChecklistItem *item = [self getChecklistItemForIndexPath:indexPath]; [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; [[cell cellTextView] setAttributedText:[[item checked] boolValue] ? [[NSAttributedString alloc] initWithString:[item name] attributes:@{ NSStrikethroughStyleAttributeName : @(NSUnderlineStyleSingle) } ] : [[NSAttributedString alloc] initWithString:[item name]]]; [[cell cellTextView] setUserInteractionEnabled:[[group isUserDefined] boolValue]]; [[cell cellTextView] setTag:indexPath.row]; [[cell cellTextView] setDelegate:self]; [[cell tickImage] setHidden:![[item checked] boolValue]]; } //Method that returns re-use: - (NSString *) reuseIdentifier { return @"CheckListTableView"; }


Bueno, acabo de usar la mejor parte del día tratando de resolver esto, así que espero que esta explicación alternativa ahorre a alguien más algún tiempo.

Tuve una vista de tabla que estaba dando este mensaje a veces, al cargar. Resultó ser causado por notificaciones KVO para los objetos de Datos Core que se activaban mientras se cargaba la vista. (Al observar un cambio, mi controlador intentó llamar a reloadData en la vista de tabla en cuestión. Se corrigió al no observar los objetos hasta que la vista había terminado de cargarse (anteriormente comencé a observar el objeto una vez que se asignó a través del acceso)

TLDR: verifique si está intentando recargar sus datos de otra cosa que no sea el hilo principal.

AUN MEJOR:

Este es un problema con el que no se encontrará si usted (como he descubierto que realmente debería) utiliza contextos de objetos gestionados por niños y solo fusiona los cambios en su MOC principal en el hilo principal en momentos razonables.


Devuelva [cell contentView] lugar de cell desde tableView:viewForHeaderInSection:

EDITAR: Esto de alguna manera provocó bloqueos en los gestos de pulsación prolongada en los botones de la IU. Para solucionarlo, me di por vencido y usé otra sección con un solo elemento como encabezado de una sección falsa.


En mi caso (bastante estúpido), utilicé la sintaxis if let dentro de cellForRowAt esa manera:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if let cell = tableView.dequeueReusableCell(withIdentifier: "carCell", for: indexPath) as? carTableViewCell { // Did some stuff here return carTableViewCell() else { return carTableViewCell() } }

Como puede ver, devolví el genérico carTableViewCell (), y eso es lo que me dio ese despreciable error ... Espero que alguna vez ayude a alguien jaja (:

¡Feliz codificación!


En mi caso, este error se presentó solo en iPhone (no en iPad) porque había colocado [self.tableView beginUpdates]; y más tarde [self.tableView endUpdates]; dentro de [UIView transitionWithView:duration:options:animations:compeletion]; . Para solucionarlo, simplemente eliminé las actualizaciones de inicio / fin, ya que prefería una animación de desvanecimiento en lugar de desvanecimiento más animando los cambios de altura de celda.


Encontré esta advertencia durante mi implementación de viewForHeaderInSection .

Esta es mi solución en Swift 2.x :

let headerView = self.tableView.dequeueReusableCellWithIdentifier("MyCell") as! MyCell let containerView = UIView(frame:headerView.frame) headerView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] headerView.myLabel.text = "section title 1" containerView.addSubview(headerView) return containerView

Esta es la versión Swift 3 :

let headerView = self.tableView.dequeueReusableCell(withIdentifier: "MyCell") as! MyCell let containerView = UIView(frame:headerView.frame) headerView.autoresizingMask = [.flexibleWidth, .flexibleHeight] headerView.myLabel.text = "section title 1" containerView.addSubview(headerView) return containerView


Me ayudó en Swift 2.1

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView { let headerCell:SBCollapsableTableViewHeader = self.friendsInfoTableView.dequeueReusableCellWithIdentifier("HeaderCell") as! SBCollapsableTableViewHeader let containerView = UIView(frame:headerCell.frame) headerCell.delegate = self headerCell.titleLabel.font = UIFont.boldSystemFontOfSize(15) headerCell.titleLabel.text = "/(self.ObjectArray[section].sectioName)" headerCell.collapsedIndicatorLabel.text = collapsed ? "+" : "-" headerCell.tag = section headerCell.backgroundColor = UIColor(red:72/255,green:141/255,blue:200/255,alpha:0.9) containerView.addSubview(headerCell) return containerView }


Recibí el mismo error, pero por una razón diferente.

Tenía un UITableViewCell personalizado que configuraba uno de los UITextField para convertirse en FirstResponder. El error se produjo cuando se devolvía más de una instancia de esta celda personalizada.

Simplemente configuré solo la primera instancia de la celda personalizada para que se convirtiera en el primer respondedor y resolvió el problema.


Resolví esto después de unos días. En mi celda personalizada tenía una vista de texto, cuando la estaba agregando a la vista de contenido que estaba haciendo esto:

[self.cellTextView setClearsOnInsertion:YES];

Esta fue la causa del problema; En caso de que alguien más tenga un problema similar.

Codificación feliz :-)


Si está utilizando la celda para el encabezado de la sección de vista de encabezado, debe colocarla en el contenedor y luego devolverla para evitar que "no se reutilice ninguna ruta de índice para la celda de la tabla". El código de muestra como abajo.

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { CustomerCellHeader *headerViewCell = [tableView dequeueReusableCellWithIdentifier:kCustomerCellHeaderIdentifier]; headerView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; [headerView addSubview:headerViewCell]; return headerView; }


Tuve el mismo problema. Este mensaje aparece cuando me desplazo y las celdas se reutilizan.

Muchas respuestas hablaron sobre viewForHeaderInSection pero no las usé. En caso de que alguien tenga un problema similar, por la presente muestro mi solución.

Agregué observador a los campos de texto dentro de cada celda. Me pregunto si este es el observador que causó este problema, ya que no eliminé a los observadores cuando se recicla una célula.

Así que eliminé el observador cuando una célula es deinitada.

Parece que el problema está resuelto. No puedo garantizar


Tuve problemas con la devolución de un UITableViewCell en tableView:viewForHeaderInSection , pero devolver [cell contentView] estaba causando el [cell contentView] cualquier botón dentro de la celda, y establecer una envoltura de vista alrededor de la celda parecía un desperdicio. En cambio, cambié mi clase UITableViewCell a un UITableViewHeaderFooterView y ¡funcionó a la UITableViewHeaderFooterView !

Si obtienes este problema:

La configuración del color de fondo en UITableViewHeaderFooterView ha quedado en desuso. Por favor, use contentView.backgroundColor en su lugar.

Solo recuerde cambiar el color de fondo de su plumilla a predeterminado.


puede intentar lo siguiente (siempre que no tenga ninguna configuración específica para una celda en esa ruta de índice):

CustomClassName *cell=[tableView dequeueReusableCellWithIdentifier:[self reuseIdentifier]]; if(cell==nil) { cell=[[CustomClassName alloc] initWithStyle:whatever_style reuseIdentifer:[self reuseIdentifier]]; }

Por favor, también publique qué error está recibiendo si lo anterior no funciona.

También echa un vistazo al siguiente enlace: -

¿Cuál es el significado del mensaje "no hay ruta de índice para la celda de tabla que se reutiliza" en iOS 6/7?