UIScrollView重置contentOffset

时间:2012-03-13 22:48:44

标签: iphone objective-c ipad uiscrollview

我有一个UIScrollView,其内容偏移因为某些随机原因而一直重置。有没有人遇到过这个问题?我将内容偏移量设置为100,然后重新向上滚动到顶部。有什么方法可以防止这种情况吗?

所以这是我在设置contentOffset时所做的代码/ hack:

 [self.currentViewController_ performSelector:@selector(scrollToOffset:) withObject:nil afterDelay:0.1];

在我的currentViewController类中我有

-(void)scrollToOffset: (CGFloat) yOffset
{
    [[self.webView_ defaultScrollView] setContentOffset:CGPointMake(0, -44) animated:YES];
}

3 个答案:

答案 0 :(得分:2)

我有一个类似的问题。在我的例子中,问题是我在viewDidLayoutSubviews中设置了scrollview的内容大小。当我尝试以编程方式回滚视图时,调用了viewDidLayoutSubviews,这导致内容大小重置。

答案 1 :(得分:1)

您可以尝试在第一个动画完成时停止后退动画。

使用此委托电话:

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView 

并在其中调用此方法:

   [self setContentOffset:self.contentOffset animated:NO];

答案 2 :(得分:-1)

你的scrollView的.contentSize属性可能有问题吗?你把它设置得对吗?