2017-07-22 63 views
0

我有一個UIPageViewController與垂直滾動基本上正常工作。但是,我遇到了一個小問題,我還無法修復:動畫後在前一頁上可見的下一頁內容

UIPageViewController中的每個頁面都應該「重置」頁面(使已在頁面中動畫的元素返回到頁面,所以說動畫它們放回)時便結束過渡到didFinishAnimating頁面和:

internal func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) 

的問題是,已經動畫垂直向上外的一些用戶界面元素(即UIView的,的UILabel和UIButton的)頁面現在可以在前一頁看到(這看起來相當醜陋,因爲人們總是會看到當一個頁面返回到上一頁時,元素如何以動畫方式返回到下一頁)。我想爲「重設」設置動畫的原因是,當沒有顯示新頁面時,甚至會調用函數(參見上文)(例如,用戶只向下滾動一下,因此只會看到下一頁的一小部分,然後擡起他的手指;他所在的頁面已經會觸發該函數意味着它試圖重置,我不想直接(沒有動畫)將它設置到新的位置,因爲它看起來更醜陋)。

因此,就解決這個問題有兩種方法:

像一個上面這也將採取頁面的變化考慮在內的函數(有一個在迅速?)還是有辦法不讓以下頁面的內容超過前一頁,如果這些頁面已經按照前面所述進行了動畫處理,則可以在頁面之外或之外(是否有隱藏它們的方法?)。

回答

0

當我想着實現一種不那麼幹淨的方式,即檢測頁面中的變化時,我設法自己找到了一個乾淨的方式(下圖)。

internal func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) { 
    if completed { 
     //calling my reset function 
    } 
} 

if completed確實比較索引的網頁來檢測變化,我認爲是相當乾淨的伎倆。因此,我現在沒有任何動畫重置它...(參見功能之後的問題)

相關問題