2012-06-26 59 views
1

我有一個應用程序使用內置翻轉動畫在各種視圖之間切換。一切正常,除非當我翻轉回到一個視圖是一個滾動視圖,它不在第一頁。含義:在iOS上的兩個視圖之間翻轉動畫

  • 我的滾動視圖有三個頁面
  • 用戶刷到第三頁
  • 用戶點擊第三頁上的按鈕進入下一個視圖
  • 當用戶試圖返回滾動視圖翻頁動畫顯示翻頁過程中的第一頁,然後在翻頁完成後捕捉到正確的頁面。

我正在使用[scrollView setContentOffset]設置翻頁動畫之前的正確頁面,但似乎不夠。有沒有辦法做到這一點?

+0

你能提供一些代碼...有很多方法可以做你的描述... – sergio

回答

0

使用

[scrollView setContentOffset:theOffset animated:NO]; 

要抑制的動畫,因爲要執行自己的動畫。您還需要確保在開始指定翻頁動畫之前設置了內容偏移量,因爲動畫會將所有內容從當前狀態轉換爲您在動畫塊中提供的任何新值。

稱其爲viewDidLoadviewWillAppear:應該工作。

+0

謝謝。問題確實是在視圖設置之前開始動畫 - 我剛剛移動了動畫開始代碼,並且所有東西都落到了原位。 –

0

一種可能性,你可以查看正在使用setContentOffset

[scrollView setContentOffset:CGPointMake(pageWidth * pageNumber, 0)]; 

移動滾動視圖原點,使其顯示頁碼pageNumber(熊熊從0到N)。或者你可以嘗試:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 

但由於你沒有指定你如何做翻轉動畫,我不知道哪一個可以爲你工作。

+0

謝謝。讓我詳細說明一下:我使用setContentOffset跳轉到正確的頁面,但是,這並沒有成功。現在,視圖翻轉,翻轉過程中我看到了scrollView的第一頁 - 只要翻轉完成,scrollView就會捕捉到正確的頁面。我試圖看看在翻頁過程中是否有辦法看到正確的頁面。我會更新我原來的帖子來反映這個問題(再次感謝你)。 –

+0

你在哪裏調用'setContentOffset'?可能你必須在管理滾動視圖的控制器的viewWillAppear方法中調用它... – sergio

+0

最初在viewDidLoad中。然後我在視圖中做了這個,並且我也試圖在兩個地方做到這一點。它看起來應該工作:viewDidLoad和viewDidAppear按順序調用,然後翻轉開始並且頁面偏移量設置正確。但翻蓋本身仍然顯示第一頁。然後在翻頁結束時,viewDidAppear會再次被調用,它將再次設置頁碼,並在此時將視圖捕捉到正確的頁面。 –

相關問題