0
votes

Comment éviter de se mettre en surbrillance deux cellules dans une vue de table?

Salut dans ma demande J'utilise une vue de table et chaque cellule contient une vue de collection. Lorsque je sélectionne une cellule dans la tableView que la cellule doit mettre en évidence de la lumière gris clair et précédente devrait changer en noir que je fais comme ci-dessous. XXX

Utilisation du code ci-dessus Parfois, les cellules précédentes et actuelles obtiennent les cellules précédentes et actuelles mis en évidence avec gris clair.Ef si je faisais ce changement dans Dispatch_Main_Queue aussi le même comportement que j'ai observé. Quelqu'un peut-il suggérer la meilleure approche pour cette fonctionnalité.

Remarque: pour la première sélection de cellules, je reçois la collectionView.tag comme -1.


1 commentaires

Comme vous le mentionnez, cela peut arriver quelque temps, cela pourrait être associé à la réponse. C'est-à-dire lorsque vous cliquez sur la cellule qui déléguée appelez une table une ou une collecte?


3 Réponses :


0
votes

Mise en œuvre suivante suivante pour résoudre votre problème: xxx

Ce code à Swift, vous devez le convertir en objectif-c.

Cette méthode appelle à la cellule précédente que vous avez sélectionné, il est désélectionné.


0 commentaires

0
votes
//add condition in tableView delegate in didselect or diddeSelect, check index.section..
    //for selected cell
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

         UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
// check indexPath.Section here
if (!indexPath.section) == 0{ 
         cell.contentView.backgroundColor = [UIColor yellowColor];
}

    }

    //for other cells
    -(void) tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
// check indexPath.Section here
if (!indexPath.section) == 0{ 
       cell.contentView.backgroundColor = [UIColor whiteColor];
      }
    }
// hope its works for you!

0 commentaires

0
votes
 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let cell = tableView.cellForRow(at: indexPath)
        cell?.contentView.backgroundColor = UIColor.red
    }

    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
        let cell = tableView.cellForRow(at: indexPath)
        cell?.contentView.backgroundColor = UIColor.lightGray
    }

0 commentaires