Comment basculer UITableView de la Cellule d'état sélectionné
J'ai un UITableView avec une mesure de la Cellule, la cellule contient une UIImageView et un UILabel. Maintenant, Quand je charge ma table première fois, Il charge d'une même image sur chaque cellule et labels différents, il faut partir du LabelArray.
Maintenant l'image que je suis en train de parler d'un radioButton, de Sorte que lorsque l'utilisateur clique sur la cellule, l'image change. Si l'utilisateur clique à nouveau des modifications à l'état par défaut.
Pour ce faire, j'ai utilisé cette fonction et aussi j'ai déclaré une variable boolean dans mon customcell classe appelée selectionStatus.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell * cell = (CustomCell* )[tableView cellForRowAtIndexPath:indexPath];
if(indexPath.row == 0)
{
if(cell.selectionStatus == TRUE)
{
//Do your stuff
cell.selectionStatus = FALSE;
}
else
{
//Do your stuff
cell.selectionStatus = TRUE;
}
}
if(indexPath.row == 1)
{
if(cell.selectionStatus == TRUE)
{
//Do your stuff
cell.selectionStatus = FALSE;
}
else
{
//Do your stuff
cell.selectionStatus = TRUE;
}
}
}
Cela fonctionne bien, (mais je veux savoir si c'est une bonne façon, ou peut-on vérifier la cellule.sélectionné à la propriété) et je suis en mesure d'obtenir cet effet. Mais maintenant, quand je ferme la Vue et de l'ouvrir à nouveau la fonction
Modifier basé sur les commentaires ci-dessous avec @Anil
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if([self.checkedIndexpath count] == 0)
{
[tableCell.selectionImage setImage:@"xyz.png"];
}
else
{
for (int i =0; i <[self.checkedIndexPath count]; i++)
{
NSIndexPath *path = [self.checkedIndexPath objectAtIndex:i];
if ([path isEqual:indexPath])
{
[tableCell.selectionImage setImage:@"abc.png"]
}
else
{
[tableCell.selectionImage setImage:@"xyz.png"]
}
}
return tableCell;
Ce qui concerne
Ranjit
Et [tableView selectRowAtIndexPath:indexPath d'animation:OUI scrollPosition:UITableViewScrollPositionNone]; pour sélectionner vos cellules. Vous donne la valeur par défaut d'IOS animations pour la sélection et la désélection des cellules.
Salut @shoughton123, merci pour votre réponse, mais qu'en est-il de la table est chargée une fois de plus
Il suffit d'enregistrer l'index sélectionné en tant que variable, lorsque la table est rechargé tout simplement utiliser ces méthodes pour reselct le même index.
OriginalL'auteur Ranjit | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
vous devez enregistrer le chemin d'index de la ligne sélectionnée dans didSelectRowAtIndexPath et vérifiez le chemin d'index dans cellForRowAtIndexPath: jeu de l'image correspondante
Voulez-vous que la sélection multiple? essayez ceci...
Modifier
Dans cellForIndexPath case comme ceci
Faire exactement nous allons voir
Salut @Anil, merci pour votre travail d'édition, comment le vérifier dans CellForRowAtIndexPath
Salut @Anil, leur est un problème, si je sélectionne 3 lignes, ce qui se passe, c'est que c'est seulement en montrant la troisième rangée sélectionnée.Si je sélectionne 4 lignes, puis il va me montrer seulement 4 ème que celui sélectionné et les précédents sont désélectionnés .
checkedIndexPath tableau ne contient qu'une seule indexPath?? de vérifier... je n'ai pas essayer ce... Son de ma logique b:)
Non, j'ai vérifié le comte, le comte est correct.
OriginalL'auteur Anil Varghese
Une autre option pour activer UItableViewCells...
Dans le willSelectRowAtIndexPath retour néant pour NSIndexPath si la cellule est déjà sélectionné, définissez également votre _selectedIndexPath variable d'instance.
Dans didSelectRowAtIndexPath et didDeselectRowAtIndexPath mise à jour de votre base de cellules sur la cellule de la propriété.sélectionné ...
et enfin dans le viewDidLoad définir la clearsSelectionOnViewWillAppear propriété...
OriginalL'auteur Nate Potter
Prendre un booléen dans votre modèle de classe et de le mettre à jour sur didSelectRow méthode et de rechargement de la table. Dans cellForRowAtIndexPath vérifier ce genre.
}
Vérifier ce lien
https://github.com/adnanAhmad786/Quiz-View--TableView
OriginalL'auteur dark
Tout d'abord pour le basculement but de déclarer une valeur booléenne selectionStatus dans tableview cellule de la classe comme ceci:
@property(nonatomic)BOOL selectionStatus;
Déclarer un NSMutableArray pour stocker les sélectionnés indexpaths (multi-sélection de but)
auto.checkedIndexPaths = [[NSMutableArray alloc] init];
Dans didSelectRowAtIndexPath
un. si Bool valeur selectionStatus est Pas d'Insérer indexPath à NSMutableArray checkedIndexPaths et de l'ensemble de la cellule.selectionStatus = OUI
b. si Bool valeur selectionStatus est Oui Supprimer indexPath de NSMutableArray checkedIndexPaths et de l'ensemble de la cellule.selectionStatus = PAS de
c. Recharger tableView chaque fois
Trouver le code ci-dessous :
Dans cellForRowAtIndexPath
un. Premier ensemble de cellules image à décochée je.e xyz.png ici
[tableCell.selectionImage setImage:[UIImage imageNamed:@"xyz.png"]];
b. Définir l'image comme vérifiée pour tous les chemins d'accès index dans NSMutable tableau de soi.checkedIndexPaths
OriginalL'auteur Kiran eldho