我使用 setContentOffset 方法自动滚动到特定点,无需用户交互。
[menuScrollView setContentOffset:CGPointMake(600.0,0) animated:YES]
但是当我尝试以循环方式调用相同的方法以减慢滚动速度时,滚动永远不会发生
for (int i = 1; i<=30; i++) {
[menuScrollView setContentOffset:CGPointMake(600.0-i*10,0.0) animated:YES];
NSLog(@"%f",600.0-i*10);
}
在上面的代码段中,UIScrollview 的滚动仅发生一次(第一次迭代(并且在剩余的 29 次迭代中它不会滚动。这里有什么问题?
最佳答案
我认为当它处于这样的循环中时,用户界面将不会更新。
尝试使用 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];
}
注意:这是我的想法,所以我不保证它会起作用。
关于iphone - UIScrollView 自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772062/