2013-06-12 5 views
2

Основываясь на изменении страницы выгружаемого UIScrollView, я вызываю scrollToRowAtIndexPath:atScrollPosition:animated в таблицу спецификаций для этой страницы, отображаемой на экране.scrollToRowAtIndexPath: atScrollPosition: анимированная прокрутка слишком медленная

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    CGFloat pageWidth = self.scrollView.frame.size.width; 
    int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth)+1; 
    self.pageControl.currentPage = page; 
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:page]; 
    [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 
} 

Однако анимация автоматической прокрутки происходит слишком медленно. Есть ли способ сделать эту анимацию более быстрой?

+0

Вы говорите о запущенных на устройстве или тренажере? –

+0

Обе анимации медленны. –

+1

Попробуйте использовать 'scrollToRowAtIndexPath' без анимации и добавьте эту строку в блок анимации' UIView', для которого вы можете установить продолжительность анимации. – danypata

ответ

16

Быстрое решение может быть:

[UIView animateWithDuration:aSmallValue animations:^{ 
     [self.tableView scrollToRowAtIndexPath:indexPath 
           atScrollPosition:UITableViewScrollPositionTop 
             animated:NO]; 
}]; 
+0

Это сработало, спасибо. –

+0

@ danypata Я хочу знать разницу между вашим методом и методом Оскара Суонроса? – BlackMamba

+0

Проблема заключалась в том, что прокрутка замедляется для скорости «scrollToRowAtIndexPath», «scrollToRowAtIndexPath» вычисляется в зависимости от размера содержимого, но если вы хотите иметь одинаковую скорость для любого размера содержимого, то вы можете использовать мой метод. – danypata

Смежные вопросы