2010-08-13 4 views
1

Très bien, j'ai un comportement étrange et cette question s'adresse aux personnes qui ont déjà eu ce problème.Éviter que UITableViewCell ne bouge lorsque vous basculez entre les modes d'édition

J'ai 4 sous-classes différentes de UITableViewCells. Ils sont tous très similaires (je ne vois pas les différences qui pourraient amener le problème).

Maintenant, mon délégué UITableView ont le code suivant:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (indexPath.section < 2) 
      return UITableViewCellEditingStyleNone; 
    else if (indexPath.row == [[AccountManager sharedManager].accounts count]) 
     return UITableViewCellEditingStyleNone; 
    else return UITableViewCellEditingStyleDelete; 
} 

Maintenant, ce que je pense serait d'avoir les 2 premières lignes ne change pas à changer l'état de setEditing: propriété de mon tableView.

est ici la partie la plus délicate:

les 2 premières lignes se déplacent à droite sans avoir le « supprimer l'icône » apparaît.

Dans la dernière section , les cellules ne se déplacent pas un seul pixel à droite et que les lignes sont d'avoir « Supprimer l'icône » apparaît.

Voici quelques informations:

Aucun de mes cellviews et subviews mettre en œuvre - (void) layoutSubviews

Tous les mettre en œuvre - (void) drawRect: (CGRect) rect

Toutes les cellules et Les sous-vues de la cellule ContentMode sont définies sur leurs paramètres par défaut. Tous les paramètres autoresizingMask sont définis sur leurs paramètres par défaut.

Une idée?

+0

Peu importe, je suis un idiot. J'ajoutais mes sous-vues à la vue de UITableViewCell au lieu de cell.contentView Je vais le garder ici au cas où quelqu'un recevrait cette erreur –

+0

Vous pouvez afficher ceci comme une "réponse" afin que les gens sachent que c'est fermé et vous obtenez des points de réputation pour la sélection c'est la bonne réponse. – iwasrobbed

+0

Je suis d'accord, je vais le faire tout de suite –

Répondre

3

Si vous ajoutez votre sous-vue directement à UITableViewCell, l'animation ne fonctionnera pas si vous basculez le mode d'édition dans UITableView.

Si vous souhaitez les activer, vous devez ajouter votre sous-vue à la propriété contentView de UITableViewCell.

+0

+1 Bon à savoir Je suppose :) – willcodejavaforfood

+0

vient de changer ma cellule de vue de table personnalisée de [self addSubview: view] à [self contentView] addSubview: view] et cela a fonctionné! À votre santé – CW0007007