簡體   English   中英

識別不在子視圖中的滑動手勢

[英]Recognize swipe gesture in view not in subview

我已經在視圖控制器的視圖中添加了一個子視圖。 該子視圖是QLPreviewController的視圖。

我想要實現的是在父視圖 (即視圖控制器的視圖)中識別子視圖上的滑動手勢。 最后,我希望能夠在視圖上向左/向右滑動以加載下一個文檔進行預覽。

我知道命中測試,並且了解到,僅將手勢識別器附加到父視圖上,就不會被識別,因為子視圖將是“命中測試”視圖。

現在,識別這些手勢的最佳(或最簡單)方法是什么? 注意:我沒有設法將手勢識別器附加到子視圖,這似乎不起作用。

*更新*

為了使它更清楚-這是我的ViewController中的代碼。 vContent只是ViewController中的一個視圖,在其中我添加了QLPreviewController的視圖:

let pvVc = QLPreviewController()
pvVc.dataSource = self

vContent.addSubview(pvVc.view)

我嘗試將滑動識別器都添加到vContent和pvVc.view中。 在這兩種情況下均未觸發任何事件。

let sgrLeft: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action:Selector("handleSwipe:"))
sgrLeft.direction = UISwipeGestureRecognizerDirection.Left
sgrLeft.delegate = self

在其他視圖上,代碼可以正常工作。

任何提示表示贊賞! 淡香水

好吧,響應鏈,不知名的動物……;-)

您可以將-hitTest:forEvent:子類化,並覆蓋-hitTest:forEvent:

您很少需要自己調用此方法,但是您可以重寫此方法以在子視圖中隱藏觸摸事件。

手勢識別器將獲得第一個識別觸摸的機會,因此即使子視圖也是hitTest視圖。 superView上附帶的gestureRecognizer可以識別識別器觸摸事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM