背景情況:
loadView時創建一個scroll作為VC的view.叫BaseScroll
- 上部分為兩部分,一個是展示信息部分。
展示信息
?* 一個是需要懸停的部分。
需要懸停
- 最下部是一個ContentScroll。包含兩個table
ContentScroll
現在的需求是
-
當懸停部分不在NavigationBar底部時,table執行上拉操作。table不作響應。由scroll做響應,如果scroll的contentSize足夠,可以將懸停部分拉到頂部NavigationBar下方(即改變baseScroll的contentSet),懸停部分不動,如繼續上拉則有table響應,滾動table的cell。如果scroll的contentSize不夠,懸停部分拉上去(接觸不到NavigationBar)后回彈。(table下拉將baseScroll拉回初始位置即contentOffset為0)
懸停部分不在NavigationBar底部 -
當懸停部分在NavigationBar底部時,table下拉時,如果table的contentOffset 不為0,即已顯示table的第一條數據時。由scroll響應事件,將懸停部分拉下來。(table上拉由table響應)
懸停部分在NavigationBar底部
目前的問題是
如果在scroll的代理方法里處理,事件已經傳遞到table上,此時不能讓baseScroll處理事件。
如果在scroll的hit方法里處理響應者,無法判斷當前事件是滑動還是觸摸。因為baseScroll上部有按鈕需要點擊。
以上。再次表示感謝。
后記
暫時用手勢處理解決需求,但不完美。有時會出現移動量為0而達不到理想效果的情況。核心代碼如下:
判斷手勢是否響應