2012-04-22 40 views
1

我有一個顯示圖像的UIPageViewController。我已經設置了一個發送用戶當前正在查看的所需圖像的機會。爲此,如果用戶點擊一次屏幕的中心區域,標籤欄將出現一個標題爲「郵件」的欄按鈕項目。當按下此按鈕時,圖像被附加到郵件編輯器。但是我在這裏遇到了一些問題:當我點擊它時頁面按鈕位於左邊緣,發生頁面捲曲,我無法獲得郵件編輯器 - 更確切地說,我無法獲取按鈕。當按下此按鈕時,我將如何防止頁面捲曲?IOS - 在PageViewController中阻止頁面捲曲

回答

2

有幾種方法可以解決這個問題。第二種解決方案更容易實施。

第一個是訪問爲頁面視圖控制器定義的手勢識別器(來自「gestureRecognizers」屬性,它返回一組手勢識別器),搜索「敲擊類型」手勢,然後爲它們分配一個委託到你的視圖控制器。該代表將執行方法

gestureRecognizer:shouldReceiveTouch:
,並檢查是否在標籤欄位置發生輕擊,並在此情況下返回NO,因此不會觸發手勢。如果您仍然需要水龍頭,但您的代表將返回YES,但它位於選項卡欄區域之外。

另一種可能性是定義一個新的輕敲手勢識別器並將其分配給標籤欄。在這種情況下,當您敲擊按鈕(位於標籤欄中)時,將觸發您分配給輕擊手勢的目標選擇器。顯然,這個選擇器不會做任何事情,因爲它的目的只是爲了避免傳播到超出它的手勢(這是默認行爲)。

我想我的回答來得太遲了,因此如果您找到了更好的解決方案,請發佈!