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问题 。