J'ai donc un objet principal auquel beaucoup d'images sont associées. Une image est également un objet.UICollectionView Sélectionner et désélectionner le numéro
Supposons que vous avez un contrôleur de vue de la collecte, et ce contrôleur vous avez
cellForItemAtIndexPath
bien basé sur l'objet principal, si elle a l'image courante associée à ce que je veux ensemble sélectionné true . Mais je veux que l'utilisateur puisse "désélectionner" cette cellule actuelle à tout moment pour supprimer son association avec l'objet principal.
Je trouve que si vous définissez "selected to true" - s'il y a une relation entre l'objet principal et l'image dans cellForItemAtIndexPath
, la désélection n'est plus une option.
dans
didDeselectItemAtIndexPath
et
didSelectItemAtIndexPath
Je test avec un journal pour voir si elles sont appelées. Si une cellule est définie sur selected - nether est appelée, mais si je ne mets jamais une cellule sélectionnée dans cellForItemAtIndexPath
, je peux sélectionner et désélectionner tout ce que je veux.
Est-ce la manière dont une vue de collection est censée fonctionner? J'ai lu les docs et il ne semble pas en parler. J'interprète les docs pour signifier qu'il fonctionne comme une cellule de vue de table le ferait. avec quelques modifications évidentes
Cela montre aussi le contrôleur est configuré correctement et utilise les méthodes de délégué appropriées .... hmmmm
Quelqu'un a-t-il utilisé la vue de collection, définie sur OUI dans cellForItemAtIndexPath et a pu désélectionner cette cellule? J'ai mis en place deux projets de test et les deux fonctionnent de la même manière. Dès que vous définissez selected à true dans cellForItemAtIndexPath, la désélection n'est jamais appelée à nouveau. – bworby
Non, je ne pense pas que tu puisses faire ça. Si je mets une cellule à sélectionnée dans celLForItemAtIndexPath, le ou les éléments se comportent comme sélectionnés à partir de l'affichage initial de la vue de collection (c.-à-d., L'arrière-plan sélectionné); Cependant, si je regarde la valeur de [collectionView indexPathsForSelectedItems], je n'ai rien - ce qui suggère qu'il n'y aurait pas moyen de le désélectionner par les moyens habituels. Vous pouvez définir la valeur de cell.selected == NO, car je n'ai pas essayé cela. Mais si vous ne pouvez pas obtenir le chemin d'index des éléments sélectionnés, cela va certainement rendre la vue de collection plus difficile à travailler. – RegularExpression
cela ne semble-t-il pas étrange? Je pense peut-être à tort, mais je pourrais certainement voir une tonne d'utilisations pour permettre à certaines cellules de démarrer comme sélectionnées, et être capable d'être désélectionné. – bworby