2017-03-16 24 views
0

在我的tvOS應用程序中,我試圖聽我的UICollectionView的滾動更改。經過研究,我發現,集合視圖本身接收幾個手勢識別其中的一個UIPanGestureRecognizer與選擇handlePan:在日誌中如何覆蓋UICollectionView中的handlePan選擇器

<UIScrollViewPanGestureRecognizer: 0x101a4c1a0; state = Possible; delaysTouchesEnded = NO; view = <UICollectionView 0x1020c5d00>; target= <(action=handlePan:, target=<UICollectionView 0x1020c5d00>)>> 

,或代碼:

myCollectionView.panGestureRecognizer 

我在想,如果有一種方法可以將我的控制器添加爲手勢識別器的目標,也可以覆蓋handlePan方法。 我試圖執行UIGestureRecognizerDelegate,但它不能讓我訪問handlePan方法。 也許我應該在收藏視圖中添加我自己的自定義UIPanGestureRecognizer

回答

3

UICollectionView是UIScrollView的子類,因此您可以通過添加scrollview委託來檢測collectionview上的滾動更改。

目標C

// called on finger up if the user dragged. decelerate is true if it will continue moving afterwards 
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { 

} 

// called when scroll view grinds to a halt 
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 

} 

夫特

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { 

} 

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { 

}