Mam UICollectionView
zawarte w , który używa poziomy UICollectionViewFlowLayout
. Używam również komórki prototypowej utworzonej w moim UIStoryboard
. Chcę utworzyć niestandardowe stronicowanie, więc używam - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
.Dlaczego indexPathForItemAtPoint zawsze zwraca zero
Problem polega na tym, że za każdym razem, gdy próbuję uzyskać wartość indexPath
odpowiadającą parametrowi docelowyContentOffset (punkt w widoku przewijania, w którym zatrzymany jest scroll), widok kolekcji zwraca zero, mimo że punkt znajduje się wyraźnie wewnątrz kolekcji zobacz contentSize.
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:(*targetContentOffset)];
// Do something with indexPath
}
Co robię źle?
Czemu pomocą ivar? Sprawdź, czy '_collectionView' sam nie jest pierwszy. – 7usam
Próbowałem użyć samej zmiennej scrollView, ale wynik jest taki sam. Jestem pewien, że obie nie są zerowe, kiedy nazywam tę metodę. – DrMonkey68