自动滚动UIScrollView

thn*_*iss 3 iphone uiscrollview iphone-sdk-3.0

我使用setContentOffset方法自动滚动到特定点而无需用户交互.

[menuScrollView setContentOffset:CGPointMake(600.0,0) animated:YES]
Run Code Online (Sandbox Code Playgroud)

但是当我尝试以循环方式调用相同的方法以减慢滚动的速度时,滚动永远不会发生

for (int i = 1; i<=30; i++) {
        [menuScrollView setContentOffset:CGPointMake(600.0-i*10,0.0) animated:YES];
        NSLog(@"%f",600.0-i*10);        
    }
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,UIScrollview的滚动只发生一次(第一次迭代(并且它不会滚动剩下的29次交互.这里有什么问题?

Ren*_*ers 6

我认为当它处于这样的循环中时,UI将不会更新.

尝试使用NSTimer,而不是像这样把它放在一个紧密的循环中.

scrollTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(scrollView) userInfo:nil repeats:YES];

- (void) scrollView {
    CGFloat currentOffset = menuScrollView.contentOffset.x;
    CGFloat newOffset = currentOffset - 10;
    [menuScrollView setContentOffset:CGPointMake(newOffset,0.0) animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

注意:这是我的头脑,所以我不保证它会起作用.