如何覆盖UICollectionView中的handlePan选择器

时间:2017-03-16 08:32:55

标签: ios swift uicollectionview tvos uipangesturerecognizer

在我的tvOS应用程序中,我正在尝试收听滚动UICollectionView的更改。经过研究,我发现集合视图本身接收了一些手势识别器,其中包含选择器handlePan的UIPanGestureRecognizer:

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

在日志中或代码中:

myCollectionView.panGestureRecognizer

我想知道是否有办法将我的控制器添加为手势识别器的目标,或者可能会覆盖handlePan方法。 我尝试实施UIGestureRecognizerDelegate,但它没有让我访问handlePan方法。 也许我应该在集合视图中添加我自己的自定义UIPanGestureRecognizer

1 个答案:

答案 0 :(得分:3)

UICollectionView是UIScrollView的子类,因此您可以通过添加scrollview委托来检测集合视图上的滚动更改。

目标-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) {

}