5

Questa è una domanda semplice che ho pensato avrebbe avuto una risposta facile da trovare, ma non lo fece. Voglio selezionare una cella in una collectionview. Il problema principale è che non posso associare un riconoscitore di gesti a una cella prototipo. Voglio afferrare il testo da un'etichetta sulla cella che viene toccata. Uso il nome in una funzione diversa nella mia vista.Come posso ottenere il nome di una collectionviewcell selezionata?

O una domanda più semplice: Esiste un tutorial sulla selezione del tocco da un elenco di elementi?

risposta

6

Si ha il metodo collectionView:didSelectItemAtIndexPath: nel delegato. Questo dovrebbe sparare quando si raccoglie la cella e si fornisce il indexPath corretto per quella particolare cella.

Utilizzare questo indexPath in combinazione con il numero di collezione cellForItemAtIndexPath: per accedere a una determinata cella.

Esempio:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 
    [self manipulateCellAtIndexPath:indexPath]; 
} 

-(void) manipulateCellAtIndexPath:(NSIndexPath*)indexPath { 
    UICollectionViewCell *cell = [self.collectionView cellForItemAtIndexPath:indexPath]; 
    // Now do what you want... 
} 

E, fino a quando sono qui. Swift-version:

override func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) { 
    manipulateCellAtIndexPath(indexPath) 
} 

func manipulateCellAtIndexPath(indexPath: NSIndexPath) { 
    if let cell = collectionView?.cellForItemAtIndexPath(indexPath) { 
     // manipulate cell 
    } 
} 
Problemi correlati