2012-02-07 44 views
1

我的項目中出現UIPageViewController的奇怪行爲。 我實現了viewControllerBeforeViewControllerviewControllerAfterViewController方法,當我在PageViewController中滑動手指時,它們工作正常。 我還希望頁面在用戶點擊PageViewController的左側和右側區域時打開,因爲它發生在iBook上。UIPageViewController在滑動和輕擊之間的不同行爲

當用戶點擊一個角落,正確的方法(viewControllerAfterViewControllerviewControllerBeforeViewController)被調用,我返回一個有效的UIViewController像我這樣當用戶在網頁之間的刷卡。 不幸的是,在點擊手勢之後頁面沒有打開,並且didFinishAnimating方法未被調用。如果在點擊後,我執行一個滑動手勢,該頁面將隨着捲曲動畫旋轉,但只調用didFinishAnimating委託方法。

很奇怪,不是嗎?看來UIPageViewController已經加載了viewcontroller,但是直到我執行滑動手勢時纔開始動畫。

我的問題的一個可能的解決方案是檢測輕掃和輕按手勢,在代表方法中什麼都不做,並通過setViewControllers:direction:animated:completion翻頁。

這不是由我來檢測手勢,因爲我做它已經在我的項目,但我想知道爲什麼UIPageViewController的行爲以這種奇怪的方式

謝謝您的問題!

+2

我找到了解決方案。 我實現了gestureRecognizerShouldBegin,我將我的viewcontroller設置爲我的PageViewController的TapGestureRecognizer的代表,並且我總是返回YES。現在我可以使用水龍頭和滑動來瀏覽頁面。 – user1194348 2012-02-14 14:52:56

+0

讓它成爲迴應!哥們,謝啦! – Raspu 2012-06-15 14:59:50

回答

0

這可能是一個相關的問題,但它非常相似,所以也許值得在此提及。有時,在設置UIPageViewController時,您會發現點擊和滑動的反轉手勢(上一頁)都可以使用,但使用向前手勢(下一頁)時,滑動可以使用,但不是輕擊。

這通常是因爲沒有正確設置UIPageViewController嵌套的UIViewController的根UIView的界限。您需要記住明確設置這些邊界,通常是設備邊界。例如在iPad上:

self.view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 768.0, 1024.0)] ; 
+0

爲你的問題添加標籤,什麼版本等將有所幫助。 – Mutant 2014-01-16 21:58:18

相關問題