TableView巢狀的思路
在實際程式碼中,我們iOS的tableView經常會有需要巢狀的情況。
一般來說,巢狀時需要控制上層和下層兩個scrollView的滑動時機,我這裡提供一種思路來實現。(程式碼是很耦合的,不容易抽離)
上層scrollView的滑動手勢,下層scrollView會沒有反應。
這是因為scrollView預設攔截了其他view上面的手勢操作,所以要實現如下的方法:
/** 同時識別多個手勢 @param gestureRecognizer gestureRecognizer description @param otherGestureRecognizer otherGestureRecognizer description @return return value description */ -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; }
上面的方法,就是我們接下來操作的邏輯基礎。
因為這個時候,我們在上層scrollView pan手勢,兩個scrollView都會實現回撥方法,進行滾動。
此時,我們就能隨心所欲的控制這兩個scrollView的滾動。
比如以下幾種情況:
1、滾動底層scrollView,達到一個偏移量時,滾動上層scrollView
(對於處於不可滾動狀態的scrollView,直接設定contentOffset來固定其位置,因為scrollView的回撥方法,不是連續的)
2、左右滑動底層scrollView時,限制上層scrollView同時滾動