2
-(IBAction)_clickautoscroll:(id)sender
{
    NSTimer *autoscrollTimer;
    if (autoscrollTimer == nil) { 
        autoscrollTimer = [NSTimer scheduledTimerWithTimeInterval:(55.0/1000.0) 
                                                           target:self 
                                                         selector:@selector(autoscrollTimerFired:)  
                                                         userInfo:nil  
                                                          repeats:YES]; 
    }
}
- (void)autoscrollTimerFired:(NSTimer*)timer { 
    CGPoint scrollPoint = self.table.contentOffset; 
    scrollPoint = CGPointMake(scrollPoint.x, scrollPoint.y + 1); 
    [self.table setContentOffset:scrollPoint animated:NO]; 
} 

我有这个用于自动滚动 tableviewcell 的代码,当我单击此按钮时,它会自动开始滚动,但我想在另一个按钮单击时停止此操作。如何在单击按钮时停止上述自动滚动。提前感谢。

4

2 回答 2

3

保存引用autoscrollTimer,然后使用NSTimer'invalidate方法杀死计时器。或者,或者,如建议的那样,scrollToRowAtIndexPath:atScrollPosition:改为使用。

于 2012-01-14T06:36:42.560 回答
2

尝试scrollToRowAtIndexPath:atScrollPosition:改用:

[self.table scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:toRow inSection:someSection] 
                  atScrollPosition:UITableViewScrollPositionBottom animated:YES];

在这里,您可以通过执行类似的操作滚动到下一行toRow + 1,并且可能在其中的某处抛出一个增量语句。

于 2012-01-14T06:36:21.020 回答