2013-12-21 77 views
5

我有一個UIViewController被推入導航堆棧。我想擴展標準的iOS7交互式平移手勢,以便將該視圖控制器彈出默認邊界UIRectEdgeLeft,以便用戶可以通過從視圖上的任意位置進行平移來啓動交互式後退操作。將默認interactivePopGestureRecognizer擴展到屏幕邊緣之外嗎?

我試過滾動我自己的交互式視圖控制器轉換,但它很麻煩,要完全複製默認interactivePopGestureRecognizer的好視差處理。例如,fromViewController隱藏了導航欄,而toViewController顯示了它 - 這是在自定義交互式轉換中不容易處理的內容,但在默認操作中是無縫的。

因此,我想將默認操作擴展到更大範圍的平移手勢,但API似乎不支持簡單替換手勢。

有沒有什麼創意?

+0

嘗試在整個視圖上創建平移手勢識別器,並將該代表設置爲導航控制器。不知道它是否會起作用,因此發表評論。我知道導航控制器可以充當邊緣手勢識別器的代表。也可以爲平底鍋工作。 –

+0

好編輯,Chancy-謝謝。有點懶。 – sirvine

+0

@LeoNatan我試過這種方法。只是將一個平移手勢的委託分配給導航控制器不起作用。 (在我的例子中,我也有一個自定義的導航控制器類,它採用'UINavigationControllerDelegate'和'UIGestureRecognizerDelegate'協議。)對於好的措施(即絕望),我嘗試將手勢的委託分配給self.navigationController.interactivePopGestureRecognizer,但這也是一個死衚衕。 – sirvine

回答

2

查看我的圖書館SloppySwiper,它通過使用UIPanGestureRecognizer並重新創建默認動畫來實現此目的。您還可以在https://github.com/fastred/SloppySwiper/issues/1中看到我的想法。

+0

太棒了!謝謝。 – sirvine

+0

我偶然發現了同樣的問題,並看到了你的答案。我已經安裝了該項目並按照說明將其添加到了我的導航控制器中。但是,現在沒有任何工作。甚至不是默認的邊緣手勢識別器。任何想法爲什麼? –