У меня есть UICollectionView
, содержащийся в UIViewController
, который использует горизонтальный UICollectionViewFlowLayout
. Я также использую прототип ячейки, созданной в моем UIStoryboard
. Я хочу создать пользовательский пейджинг, поэтому я использую - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
.Почему indexPathForItemAtPoint всегда возвращает nil
Проблема заключается в том, что каждый раз, когда я пытаюсь получить indexPath
, соответствующий targetContentOffset (точка в прокрутке, где прокрутка останавливается), представление коллекции возвращает нуль, хотя точка явно находится внутри коллекции просмотр содержимого.
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:(*targetContentOffset)];
// Do something with indexPath
}
Что я делаю неправильно?
Почему Вы используете Ивар? Проверьте, является ли сам '_collectionView' первым. – 7usam
Я попытался использовать переменную scrollView, но результат тот же. Я уверен, что оба они не ноль, когда я вызываю метод. – DrMonkey68