UIScrollView不能正确恢复

我有一个滚动视图,它的属性是在viewDidAppear中设置的。 现在当我第一次进入滚动查看时,没有任何问题。 不过,我有分配给UINavigationController的button。 所以,当我按下其中的一个UINavigationController打开,当我closures导航控制器,ScrollView不能正确恢复。 它基本上与之前按下的button位置alignment屏幕的中心。 所以,如果我试图向上滚动它不。

我已经尝试在我的viewDidAppear使用这个:

scrollView.center = CGPointMake(scrollView.contentOffset.x, scrollView.contentOffset.y); 

哪个不好用。 我该如何解决这个问题? 我正在使用iOS6.1

其实我在这里find了答案:

UIScrollview Autolayout问题

我使用的确切代码是:

 - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; //save the current offset previousPoint = scrollView.contentOffset; //set current view to the beginning point self.scrollView.contentOffset = CGPointZero; } - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; //retrieve the previous offset self.scrollView.contentOffset = previousPoint; } 

previousPoint只不过是在实现中声明的CGPointvariables。

我也有过这个问题。 这个答案显示了如何解决这个问题。

基本上,你需要在viewWillAppear:viewDidDisappear:适当地设置scrollview的contentOffset

编辑:这是另一个相关的问题,你可能会发现有用的, UIScrollview Autolayout问题 。