У меня есть UIView с контентом, и я реализую функцию pull-to-refresh. Как настроить UIScrollView для возврата к contentOffset 0,0 (и сделать его естественным)?Заставить UIScrollView всегда в CGPointZero, если не потянуть, чтобы обновить
Я видел много примеров этого с помощью UITable View, и у вас есть попытка обновить поведение довольно. Кажется, что у моей проблемы большой размер контента, чтобы разместить скрытый баннер Pull-To-Refresh. Если я прокручу контент вниз, он снова закроется. Если я вытащил содержимое, он лениво прокручивает назад, но не в то же самое точное положение.
Я реализовал функцию ниже, которая будет определять прокрутку прокрутки. Затем он снова разместит представление до 0,0. Этот вид работ, но выглядит нервным или отстает в анимации.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
{
if(moveScrollView)
[moveScrollView invalidate];
moveScrollView = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveScrollViewToOrigin) userInfo:nil repeats:NO];
}
- (void)moveScrollViewToOrigin;
{
if(scrollView.contentOffset.y == 0)
return;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
[[self scrollView] setContentOffset:CGPointZero];
[UIView commitAnimations];
}
Я создал образец проекта с проблемой и мое решение here.
Спасибо, но это помогает в анимации, а не в поведении. Я играю с сенсорными и прокручивающими событиями, чтобы даже не допустить, чтобы пользователь прокручивал контент, если только они не потянули значок «Обновить баннер». Теперь мне интересно, должен ли я просто использовать UIView, который позволяет вам сворачивать контент вниз, а затем создавать резервные копии. – Travis