Ho un UICollectionView
contenuto in un UIViewController
che utilizza uno UICollectionViewFlowLayout
orizzontale. Sto anche utilizzando una cella prototipo creata nel mio UIStoryboard
. Voglio creare un cercapersone personalizzato, quindi sto usando - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
.Perché indexPathForItemAtPoint restituisce sempre nulla
Il problema è che ogni volta che sto cercando di ottenere il indexPath
corrispondente a targetContentOffset (il punto nella vista di scorrimento in cui si fermerà lo scorrimento), la vista di raccolta restituisce zero anche se il punto è chiaramente all'interno della raccolta visualizza contentSize.
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:(*targetContentOffset)];
// Do something with indexPath
}
Cosa sto sbagliando?
perché stai usando l'ivar? Controlla se '_collectionView' è di per sé nullo prima. – 7usam
Ho provato a usare la variabile scrollView stessa ma il risultato è lo stesso. Sono positivo che entrambi non siano nulli quando chiamo il metodo. – DrMonkey68