Quindi sembra che tu non sia possibile utilizzare il generatore di interfaccia per aggiungere un riconoscimento di gesture a una vista supplementare di un UICollectionView.
Credo che questo sia dovuto al fatto che quando vengono caricati i file .xib, UICollectionView deve apparire come una cosa sola al superview e quando si aggiunge il riconoscitore di gesti a tale UICollectionView si finisce con due cose a livello di superview, che entrambi corrispondono a UICollectionView.
È comunque possibile implementare il riconoscimento di gesti in modo programmatico utilizzando la definizione della vista supplementare all'interno del protocollo UICollectionViewReusableView. (Il se viene utilizzato per distinguere tra una vista complementare intestazione e una vista complementare piè avanti nel codice)
if (kind == UICollectionElementKindSectionHeader) {
MyHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"MY_HEADER" forIndexPath:indexPath];
// call headerView methods (to put things into the header's UI objects for example)
[headerView ...];
[headerView ...];
[headerView ...];
// add gesture recognition for tapping on a UIlabel within the header (UICollectionView supplementary view)
UITapGestureRecognizer *bioTap = [[UITapGestureRecognizer alloc] initWithTarget:headerView action:@selector(handleUILabelTap:)];
// make your gesture recognizer priority
bioTap.delaysTouchesBegan = YES;
bioTap.numberOfTapsRequired = 1;
[headerView.UILabelName addGestureRecognizer:UILabelTap];
reusableview = headerView;
}
fonte
2013-10-03 15:16:40
Ho nominato la domanda per la riapertura. A giudicare dai voti riaperti ricevuti finora, dovrebbe riaprire presto. Se e quando ciò accade, si prega di inviare la soluzione come risposta. Aiuterebbe i futuri lettori :) – Harry
Anche io vedo lo stesso problema. Posso andare avanti aggiungendo il riconoscimento dei gesti a livello di codice, ma mi chiedo anche perché l'uso di Interface Builder non funzioni. –