我怎样才能这样做,以便在我使用UIScrollView时不调用平移手势识别器选择器。
我希望能够在滚动视图中滚动而不调用平移手势选择器。
这是我的泛检测功能:
- (void)panDetected:(UIPanGestureRecognizer *)panRecognizer
{
CGPoint translation = [panRecognizer translationInView:self.view];
CGPoint imageViewPosition = self.draggableImage.center;
imageViewPosition.x += translation.x;
imageViewPosition.y += translation.y;
self.draggableImage.center = imageViewPosition;
[panRecognizer setTranslation:CGPointZero inView:self.view];
}
当我在页面底部使用我的UIScrollView时,我不希望它被调用。
答案 0 :(得分:4)
您可以从滚动视图中删除手势识别器
NSArray* gestureRecognizers = [scrollView gestureRecognizers];
for (UIGestureReconizer* recog in gestureRecognizers) {
if ( [recog isKindOfClass:[UIPanGestureRecognizer Class]] )
[recog removeTarget:scrollView.delegate action:@selector(scrollViewDidScroll:)];
}
我不明白为什么要这样做,但现在就是。
答案 1 :(得分:0)
不完全确定你要在这里完成什么。我没有玩过这个,但我最初的想法是,如果你禁用平移识别器,滚动视图就不会滚动。您的滚动视图根据平移识别器所说的内容计算滚动的位置和方式。
如果你有一个替代设置来处理滚动,那么无论如何:
UIScrollView *scrollView;
[[scrollView panGestureRecognizer] setEnabled:NO];