如何覆盖 UICollectionView 中的 handlePan 选择器
How to override the handlePan selector in UICollectionView
在我的 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
?
UICollectionView 是 UIScrollView 的子类,因此您可以通过添加滚动视图委托来检测 collectionview 上的滚动变化。
Objective-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 {
}
Swift
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
}
在我的 tvOS 应用程序中,我正在尝试监听 UICollectionView 滚动的变化。经过研究,我发现集合视图本机接收一些手势识别器,其中一个带有选择器 handlePan
:
<UIScrollViewPanGestureRecognizer: 0x101a4c1a0; state = Possible; delaysTouchesEnded = NO; view = <UICollectionView 0x1020c5d00>; target= <(action=handlePan:, target=<UICollectionView 0x1020c5d00>)>>
在日志中,或在代码中:
myCollectionView.panGestureRecognizer
我想知道是否有办法将我的控制器添加为手势识别器的目标,或者覆盖 handlePan
方法。
我尝试实施 UIGestureRecognizerDelegate
但它没有让我访问 handlePan
方法。
也许我应该在集合视图上添加我自己的自定义 UIPanGestureRecognizer
?
UICollectionView 是 UIScrollView 的子类,因此您可以通过添加滚动视图委托来检测 collectionview 上的滚动变化。
Objective-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 {
}
Swift
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
}