2010-05-12 14 views
1

J'ai une vue de table groupée. Chaque section a trois rangées. Je dois pouvoir supprimer une section à la fois. En utilisant le mode d'édition standard, je peux le faire fonctionner. Cependant, l'icône de suppression apparaît à gauche de chaque cellule, pas seulement la première ligne de chaque section.Mode Éditer Supprimer l'icône du fileur pour les lignes TableView spécifiques

Existe-t-il un moyen de supprimer la petite icône de fileur pour toutes les lignes sauf la première?

J'espère qu'il y a un moyen facile de le faire sans sous-classe.

Voici une capture d'écran pour aider à le visualiser: http://picasaweb.google.com/lh/photo/ll-EJY5ACw7oqHH1xKBQ8w?feat=directlink

Répondre

0

Au lieu de supprimer des lignes, faire un parent UIView qui contient un UILabel et la coutume UIButton comme subviews. Définissez cette vue parent comme section header view.

Le bouton doit être câblé pour déclencher une méthode qui supprime des lignes, par exemple, en feuilletant un drapeau de l'État BOOL pour cette section, puis de recharger la table:

- (void) deleteMySection:(id)sender { 
    self.showMySection = NO; 
    [tableView reloadData]; 
} 

Votre -numberOfSectionsInTableView: méthode de délégué ajuster en conséquence sa sortie dépend de l'état de ce drapeau booléen, par exemple

- (NSInteger) numberOfSectionsInTableView:(UITableView *)tv { 
    return ((showMySection) ? numberOfSections : numberOfSections - 1); 
} 
1

Essayez ceci:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.row == 0) { 
     return UITableViewCellEditingStyleDelete; 
    } else { 
     return UITableViewCellEditingStyleNone; 
    } 
}