Penso che potresti voler mantenere la cella selezionata con un diverso colore di sfondo, giusto? Quindi prova questo codice.
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
cell.backgroundColor = [UIColor magentaColor];
}
- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
cell.backgroundColor = [UIColor cyanColor];
}
Basta semplicemente assegnare un colore BG diverso per le celle in stato diverso. Inoltre il codice seguente è la documentazione dei metodi di attivazione della sequenza mentre qualcuno tocca una cella collectionView. È inoltre possibile trovare questi documenti nel file UICollectionView.h, parte del protocollo UICollectionViewDelegate.
// Methods for notification of selection/deselection and highlight/unhighlight events.
// The sequence of calls leading to selection from a user touch is:
//
// (when the touch begins)
// 1. -collectionView:shouldHighlightItemAtIndexPath:
// 2. -collectionView:didHighlightItemAtIndexPath:
//
// (when the touch lifts)
// 3. -collectionView:shouldSelectItemAtIndexPath: or -collectionView:shouldDeselectItemAtIndexPath:
// 4. -collectionView:didSelectItemAtIndexPath: or -collectionView:didDeselectItemAtIndexPath:
// 5. -collectionView:didUnhighlightItemAtIndexPath:
iosuicollectionviewuicollectionviewdelegate
fonte
2014-02-25 08:15:57
ero alla ricerca di questa risposta ... stavo cambiando una griglia personalizzata per UICollectionView e TableView vista combinazione. L'implementazione di entrambi i metodi consente di selezionare e quindi modificare la selezione. Grazie Steve, questo è stato il trucco per me. –