У меня возникла проблема при создании механизма pull для обновления в нижней части прокрутки. Код работает совершенно гладко в iOS7, но в iOS8 scrollview мгновенно проскакивает, а затем оживляет до правильной позиции.UIScrollView setContentInset вызывает прокрутку прокрутки в ios8
Я отслеживаю прокрутку до тех пор, пока она не будет покрыта резиновой оболочкой за пределами kPullToRefreshHeightPX (в моем случае это 40 пикселей), а затем установите флаг для вставки и выпустите обновление содержимого.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (_webShouldInsetScrollView == NO && (scrollView.contentOffset.y > ((scrollView.contentSize.height - scrollView.frame.size.height) + kPullToRefreshHeightPX)))
{
_webShouldInsetScrollView = YES;
}
}
Если на конце тащит мы вытащили за пределами нашего обновления расстояния, то вставка (и запустить нашу маленькое обновление анимации) и показать следующую страницу результатов.
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if (_webShouldInsetScrollView)
{
[UIView animateWithDuration:0.2 animations:^{
[scrollView setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, kPullToRefreshHeightPX, 0.0f)];
} completion:^(BOOL finished) {
}];
[self performSelector:@selector(showNextResultsPage) withObject:nil afterDelay:1.0f];
}
}
Я читал другие вопросы, с UIScrollViews в iOS8, один из которых говорил о automaticallyAdjustsScrollViewInsets
быть установлен ложный в iOS7, но теперь верно по умолчанию в iOS8, но это не имеет никакого влияния на приведенном выше коде. Кто-нибудь еще имел подобный опыт и понял путь вокруг него?
Я вижу точно то же самое. Пока не выяснили решение. – sha