2013-02-15 2 views
3

Я пытаюсь заставить мой UITableView медленно прокручивать вниз с постоянной скоростью, которую я могу указать. Я использовал scrollToRowAtIndexPath, но независимо от того, выбираю ли я его оживить, это почти мгновенное движение. Я смотрю на что-то, что движется гораздо медленнее.Сделать прокрутку UITableView сверху вниз в течение заданного периода времени?

Я действительно задавался вопросом, могу ли я что-то сделать с блоком анимации UIView, перемещая один indexPath.row за раз, но так как мои ячейки разные высоты, это приведет к неравномерной скорости анимации.

Любые другие способы я могу это сделать?

ответ

3

Я получил его с этим ..

[NSTimer scheduledTimerWithTimeInterval: 0.025 target:self selector:@selector(scrollTableView) userInfo:nil repeats:YES]; 

И ..

- (void) scrollTableView { 

    float w = 1; 

    CGPoint scrollPoint = self.tableView.contentOffset; 
    scrollPoint.y = scrollPoint.y + w; 
    if (scrollPoint.y >= self.tableView.contentSize.height - (self.tableView.frame.size.height - 100) || scrollPoint.x <= -self.tableView.frame.size.height + 924) { 
    w *= -1; 
    } 
    [self.tableView setContentOffset: scrollPoint animated: NO]; 
} 
+1

Убедитесь, что вы имеете дело с пользователем, взаимодействующим с таблицей в то время как вы делаете это, а также пользователь, оставляя контроллер представления. – rmaddy

0

Вы всегда можете уменьшить значение огибающей по оси Y во времени.

+0

Это именно то, что я только что сделал :) – Luke

0

Здесь вы идете приятель. Просто измените animateWithDuration на более высокие секунды, например 1 или 1,5, чтобы увидеть, достигает ли он желаемого эффекта. Убедитесь, что вы включили библиотеку QuartzCore и #import <QuartzCore/QuartzCore.h> в свой * .m файл. Это так же просто, как он получает

-(IBAction)modeTableSlowly 
{ 

    [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^{ 

      //here tblSimpleTable2 is tableView 
      [tblSimpleTable2 setFrame:CGRectMake(183, 56, 137, 368)]; 

    } completion:nil]; 

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