2010-10-16 15 views
3

我正在開發支持在表視圖之間拖動項目的iPhone/iPad應用程序。由於所有表格都不適合屏幕顯示,因此我編寫了一個自定義UIScrollView,它們可以水平放置它們,並支持分頁。在多個UIGestureRecognizer實例之間分割觸摸序列

雖然我已經得到了主要的拖累,但還是有一些我無法理解的問題。

  1. 用戶後已選擇拖動一個項目,並且是拖,他們不能滾動UIScrollView找到目的地UITableView

  2. 有時用戶會想要在範圍內拖動項目相同的表格視圖。但是一旦拖動開始,表格視圖不再識別滾動手勢。

我已經嘗試了各種不同的選項,包括實施UIGestureRecognizerDelegate並允許多個手勢識別同時識別手勢。

問題出在事件處理指南中:「iOS可以識別一個或多個手指觸摸屏幕作爲多點觸控序列的一部分,該序列從第一個手指觸摸屏幕時開始並在最後一根手指從屏幕上擡起時結束。「

UIGestureRecognizer實例總是匹配整個序列。在我的情況下,我想要將單個序列分解爲不連續的手勢 - 某些接觸會識別物體的拖動,而同一序列中的不同接觸應該被識別爲輕掃或滾動手勢。實際上,我希望我的手勢識別器能夠同時識別,但只有不同接觸。一旦將觸摸識別爲手勢的一部分,則該觸摸應該被其他人忽略。

我還沒有找到一種方法來使用默認的UIGestureRecognizer子類一致地解決所有這些問題,現在即將編寫我自己的自定義多部分手勢識別器。

我寧願不必 - 雖然有更合適的方法來達到同樣的效果嗎?

回答

2

鑑於此處的沉默,以及我剛剛發現的博客文章,我相信答案是,沒有辦法通過標準框架進行子姿勢識別。

對於那些希望做同樣的事情,看看這個項目/博客文章,這是試圖創建一個子手勢識別庫:

http://sunetos.com/items/2010/10/31/adding-subgestures-to-ios-gesture-recognition/

我沒有用它 - 我最終手工製作了自己的迭代版本 - 但會考慮重構使用它,如果它平淡無奇。