1

我有一个 Scrollview,它的属性在 viewDidAppear 中设置。现在,当我第一次到达 Scrollview 时,没有任何问题。但是我有分配给 UINavigationController 的按钮。因此,当我按下其中一个 UINavigationController 打开时,当我关闭导航控制器时,ScrollView 无法正确恢复。它基本上将屏幕中心对齐为先前按下的按钮位置。所以如果我尝试向上滚动它不会。

我曾尝试在我的 viewDidAppear 中使用它:

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

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

4

2 回答 2

5

其实我在这里找到了答案:

UIScrollview 自动布局问题

我使用的确切代码是:

- (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只不过是在实现上声明的 CGPoint 变量。

于 2013-08-02T07:25:09.110 回答
2

我以前也遇到过这个问题。这个答案显示了如何克服这个问题。

基本上,您需要在和中contentOffset适当地设置滚动视图。viewWillAppear:viewDidDisappear:

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

于 2013-08-02T06:49:22.413 回答