在我的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
?
答案 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) {
}