1
在頂級UIView上使用UIPanGestureRecognizer & UITapGestureRecognizer。UIPanGestureRecognizer頂級視圖無法獲取事件,消耗它們的子視圖
在界面生成器的設置:
- 的ViewController(我們的主視圖控制器)
- 的UIView(我們的主視圖和有線到我們的UIViewController
- 我們的核心的UIView具有子視圖叫做「塊」,它簡直就是UIView。
- 的塊視圖有4個子視圖(子女)的每個分別爲的UIButton的一個實例。
- UIButton有其TouchUp Inside事件連接到UIViewController。
- UIView的(我們的主頂級的UIView)具有UIPanGestureRecognizer和UITapGestureRecognizer
這是我們所要完成的方案(akaThe行爲):
- 用戶點擊按鈕(單元格)。
- 該按鈕將從「正常」改爲「已選」。 (此工作正常,代碼簡單)
- 與選擇的項目,用戶可以在任何地方將他們的手指在屏幕上或上下移動
問題:
- 極品知道何時平移停止。
- 頂部的UIView沒有收到一個結束的手勢。
- UIView不會收到touchesEnded事件。
你怎麼知道用戶何時舉起了他們的手指?假設當我的手指在UIButton上方時開始平移,而在發生平移時,UIButton會觸摸開始和結束事件。因此,您無法知道用戶何時停止在iPhone/iPad玻璃上移動手指。
謝謝。看來我的問題是我在界面構建器中添加了UIPanGestureRecognizer,設置了委託和操作。在IBAction中,我將方法設置爲 - (IBAction)onPanGesture :(UIPanGestureRecognizer *)識別器;這是失敗的。當我簡單地對手勢識別器的創建進行硬編碼時(如上所述),現在一切正常。 – user3615480
我可以提供幫助。如果對我的答案感到滿意,請接受它。 – Pancho