#ios #uiscrollview #uicollectionview #overscroll
#iOS #uiscrollview #uicollectionview #перемотка
Вопрос:
Обзор
Я создаю приложение, которое позволяет пользователю прокручивать основное UICollectionView
на определенную величину, чтобы загружать связанный контент. Тактильные ощущения при прокрутке должны быть такими же, как и во многих других приложениях iOS, которые приводят к обновлению содержимого на текущей странице, поэтому я установил collectionView.bounce = YES
.
Как только пользователь превысит прокрутку на указанную величину, я хочу переместить текущую UICollectionView
страницу вниз и из поля зрения, одновременно перемещая новую страницу вниз в поле зрения из верхней части устройства, очень похоже на навигацию между статьями в приложении Digg для iPhone.
Я обнаруживаю перемотку, используя этот UIScrollViewDelegate
метод:
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
CGFloat offsetY = scrollView.contentOffset.y;
CGFloat contentHeight = scrollView.contentSize.height;
if (offsetY < -40){
[self.delegate overscrolledUp];
}
if (offsetY - (contentHeight - scrollView.frame.size.height) > 40){
[self.delegate overscrolledDown];
}
}
Проблема
Делегат заботится о перемещении фреймов этих UICollectionView
файлов, но моя проблема заключается в том, что, когда текущая страница перемещается вниз и выходит из поля зрения (или вверх и из поля зрения, если пользователь прокручивает вниз), UICollectionView
прокрутка также возвращается к contentOffset
значению (0,0). Это приводит к странно выглядящей анимации, которой я бы хотел избежать. Я хочу, чтобы пользователь мог выполнять прокрутку, чтобы отображался индикатор, описывающий новый контент, который он может видеть, но я не хочу, чтобы эта прокрутка была отменена во время анимации смены страницы.
Вопрос
Есть ли способ запретить a UICollectionView
/ UIScrollView
возвращать его прокрутку в (0,0) после того, как пользователь прокручивает содержимое?
Ответ №1:
Взгляните на
https://github.com/enormego/EGOTableViewPullRefresh
Он содержит запрос на обновление кода tableview, вы можете использовать его напрямую или как источник вдохновения.
Комментарии:
1. Спасибо! Что помогло, так это установить contentInset для ScrollView на смещение после достижения порогового значения.