gpt4 book ai didi

iOS:使用 2 个手指时取消 UIScrollView 触摸

转载 作者:可可西里 更新时间:2023-11-01 05:58:05 25 4
gpt4 key购买 nike

我已经编写了一个 UIScrollView 子类,用于滚动一系列 UITableView。见下图:

enter image description here

如您所见,我有几个垂直滚动的 UITableView,它们在父 UIScrollView 内水平滚动。这一切都很好。但是,该应用程序有许多全局 手势。例如,如果我用两根手指在给定的方向上滑动,我就会将 UIView 转换到应用程序的另一部分。但是如果我在 ScrollView 和/或其子 TableView 之上做手势,它们自然会滚动它们的内容。这看起来不太好,会导致一些布局问题。

我想弄清楚的是,当用户用两根手指且仅用两根手指触摸任何地方 时,如何在 UIScrollView 及其子 UITableView 上禁用所有滚动。我已经尝试过覆盖 touchesBegan、touchesEnded、touchesShouldCancel 等的各种变体......但我不能完全正确。非常感谢任何帮助。

这是我的手势处理代码:

UISwipeGestureRecognizer *twoFingerSwipeUp = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleTwoFingerSwipe:)];
[twoFingerSwipeUp setNumberOfTouchesRequired:2];
[twoFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp];
[twoFingerSwipeUp setDelegate:self];

// 'self' is the superview of the UIScrollView, which is a UIView.
[self addGestureRecognizer:twoFingerSwipeUp];

[twoFingerSwipeUp release];

// ... repeat the above code for up, down, left, right gestures ...

- (void)handleTwoFingerSwipe:(UISwipeGestureRecognizer*)swipeGesture {

switch ([swipeGesture direction]) {

case UISwipeGestureRecognizerDirectionUp:
[self changeToView:viewAbove];
break;

case UISwipeGestureRecognizerDirectionDown:
[self changeToView:viewBelow];
break;

case UISwipeGestureRecognizerDirectionRight:
[self changeToView:viewToTheRight];
break;

case UISwipeGestureRecognizerDirectionLeft:
[self changeToView:viewToTheLeft];
break;
}
}

最佳答案

尝试在所有滚动和表格 View 上设置 panGestureRecognizer.maximumNumberOfTouches = 1(仅限 iOS 5)。

关于iOS:使用 2 个手指时取消 UIScrollView 触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com