10
votes

Certaines cellules d'entretien d'entretiens disparaissent après avoir défilé et revenir

J'ai quatre utablementviews côte à côte, créé par programme. Problème 1: La 1ère cellule est toujours vide. Problème 2: Lorsque je fais défiler vers le bas, certaines cellules sont vides. Lorsque je fais défiler vers et d'avant, d'autres cellules disparaissent.

Voici le code où le utableviews est créé et que leurs cellules sont réglées ...

Tableau de Utailviews déclaré au début de .m fichier: xxx

dans la fonction ViewDidLayouTouSubviews i Créez le < Code> UitailView : xxx

}

Voici où chaque cellule est définie ............ ........... xxx


1 commentaires

Vous ne devez pas utiliser le même cellentificateur pour toutes les tables. Essayez [Nstring StringwithFormat: @ "Cell% D", Chanel];


3 Réponses :


0
votes

u devez faire une palette de dictionnaire et ajoutez vos données de filtre de texte qui avec IndexPath.row basées après Scroll TableView.

Voir mon exemple P>

 NSMutableDictionary *dicttable=[NSMutableDictionary dictionaryWithDictionary:[arrofselect     objectAtIndex:indexPath.row]];
    [dicttable setValue:[NSString stringWithFormat:@"%@",self.other_text.text] forKey:@"AnswerId"];
    [dicttable setValue:[[arrQuestions objectAtIndex:indexPath.row] valueForKey:@"QuestionID"] forKey:@"QuestionID"];
    [arrofselect replaceObjectAtIndex:indexPath.row withObject:dicttable];
  • (vide) TextfieldDidbeginetiting: (Uitextfield *) Textfield Li>
  • (vide) TextfieldDentrediting: (Uitextfield *) Textfield Li> ul>

    Profitez ... Cheers P> P>


0 commentaires

4
votes

J'ai eu le même problème, mais pour moi, c'était la propriété des éléments dans l'Uitabiliewcell. Je vous suggère d'utiliser une cellule personnalisée et de créer les champs de texte avec la nib ou le storyboard. Puis créer des sorties pour eux dans la classe de cellules personnalisée avec la signature suivante: xxx

La partie importante consiste à utiliser la propriété forte et non faible.

Voici un lien à mon message.

Bonne chance et espérons que cette aide!


1 commentaires

Je ne pouvais pas utiliser de scénario car les enfants d'objets d'interface utilisateur dans les cellules changeront pendant le temps d'exécution. Mais je suppose que je pourrais peupler chaque cellule au temps de construction avec exactement le même ensemble d'objets d'interface utilisateur, puis cacher / montrer ce qui est nécessaire au moment de l'exécution.



14
votes

Vous devez définir votre chapicieur tel que ci-dessous: - xxx

nstring * cellidentificateur = [NSString StringwithPlat: @ "% d_% d", IndexPath.section, index ,.row];

Ceci peut vous aider


4 commentaires

Merci, Nitin! Cela m'a conduit à enfin comprendre le comportement de la structure de données cellulaire. Dans mon cas, j'avais 4 tableviettes, donc mon identifiant de cellule doit être une fonction du numéro de canal et du numéro de ligne. Maintenant, faites défiler sans changer de valeur. O n e l a s t b u g: La toute première ligne au début de chacune des 4 tables est toujours vide, même après le défilement et puis de retour Mais Nslog montre que la rangée 0 obtient une cellule.


Salut Dauglas S'il vous plaît se référer ceci: - Stackoverflow.com/Questtions/6805669/...


@NitingOehel semble bien fonctionner pour un classique UitailViewCell, mais qu'en est-il d'un UitailViewCell personnalisé (avec XIB externe et classe spécifique)? Nous devons utiliser le cellentificateur pour indiquer à la TableView d'utiliser ce type de cellule spécifique. Donc, lorsque j'essaie votre solution avec la coutume, je me retrouve avec des cellules vides. Une idée? Merci ;)


Cela va casser. Si vous utilisez une cellule de TableView personnalisée et avec IB