2017-03-16 1 views
0

私のtvOSアプリケーションでは、私のUICollectionViewのスクロールの変更を聞こうとしています。場合、私は思っていたUICollectionViewのhandlePanセレクターをオーバーライドする方法

myCollectionView.panGestureRecognizer 

:ログ内、またはコードで

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

:研究の後、私はコレクションビューがネイティブセレクタhandlePanでUIPanGestureRecognizerその中でいくつかのジェスチャー認識装置を受けることがわかりましたジェスチャ認識プログラムのターゲットとしてコントローラを追加する方法、またはhandlePanメソッドをオーバーライドする方法があります。 UIGestureRecognizerDelegateを実装しようとしましたが、handlePanメソッドにアクセスできません。 多分、私は自分のUIPanGestureRecognizerカスタムをコレクションビューに追加するべきですか?

答えて

3

UICollectionViewはUIScrollViewのサブクラスなので、scrollviewデリゲートを追加することで、collectionviewのスクロールの変更を検出できます。

// 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 { 

} 

スウィフトのObjective-C

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

} 

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { 

} 
関連する問題