我有一個視圖drawingView
用於繪圖,我使用touchesBegan,Moved,End將曲線添加到呈現它們的子視圖renderingView
。我也想支持在同一屏幕上縮放和平移,所以我在的子視圖中添加了UIScrollView
,並在我的scrollView代理的viewForZooming
方法中返回renderingView
。允許單點觸摸事件通過UIScrollView
現在,所有的縮放/平移工作。 renderingView
放大,還佈置了貝塞爾曲線,我可以平移放大渲染等。但是,使用drawingView
的觸摸*方法實際繪製成renderingView
的初始功能不再起作用,因爲滾動視圖是子視圖並正在消費觸摸事件。
我願意將滾動視圖的平移設置爲至少2指手勢,因此縮放/捏和平移將是2指手勢,爲canvasView
留出空間以處理單手指觸摸*要添加的事件路徑信息。
現在,我找到了一種方法(雖然看起來像是黑客),通過遍歷其手勢並檢查其平移手勢時,將scrollview的平移手勢設置爲最少兩個手指觸摸。但是,將此設置爲最少兩個手指觸摸,不允許我的canvasView
開始獲取觸摸事件。我怎樣才能做到這一點?
TL; DR
UIScrollView
一個子視圖在吃的touchesBegan /移除/截止它的父的事件。我怎樣才能解決這個問題是我願意將scrollView的事件限制爲兩個手指手勢,並讓超級視圖處理單指手勢?
用手勢的問題是,他們實際上有一點延遲的,他們「搞」了。導致繪製經驗遲滯。其次,滾動視圖看起來有3個手勢,並且很難將它們全部設置爲2個最小觸摸,使得任何1個觸摸事件乾淨地在滾動視圖中傳播。 –