2013-08-02 43 views
1

我有一個滾動查看,它的屬性設置在viewDidAppear中。 現在,當我第一次到達滾動視圖時,沒有任何問題。不過,我有分配給UINavigationController的按鈕。所以當我按下其中一個UINavigationController時,打開了,當我關閉導航控制器時,ScrollView無法正常恢復。它基本上與先前按下的按鈕位置對齊屏幕的中心。所以如果我試圖向上滾動它不會。UIScrollView無法正確還原

我在viewDidAppear使用這種嘗試:

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

,該片未能工作。我該如何解決這個問題?我正在使用iOS6.1

+0

你能張貼一些圖片來說明你的意思嗎?我很難想象這個問題。 –

+0

可能重複[UIScrollview Autolayout問題](http://stackoverflow.com/questions/12580434/uiscrollview-autolayout-issue) –

回答

5

其實我找到了答案在這裏:

UIScrollview Autolayout Issue

,我使用的確切的代碼是:

- (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變量。

2

我以前也有過這個問題。 This answer顯示如何解決此問題。

基本上,您需要在viewWillAppear:viewDidDisappear:中適當地設置滾動視圖的contentOffset

編輯:這是另一個相關的問題,你可能會覺得有用,UIScrollview Autolayout Issue

+0

@SarpKaya'recentContentOffest'是一個變量,當你離開時保存你的滾動視圖的'contentOffset'查看(在你的情況下,當你點擊按鈕UINavigationController打開)。當滾動視圖消失時,我鏈接的答案保存了這個'contentOffset',所以當滾動視圖再次出現時它可以被重置。 –