sti*_*poy 19 objective-c uiscrollview uigesturerecognizer
我想在我的手机中禁用双指滚动UIScrollView.
我将其子类化并使用以下代码调整其内置手势识别器:
for (UIGestureRecognizer *mgestureRecognizer in scroller.gestureRecognizers) {
if ([mgestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]])
{
UIPanGestureRecognizer *mpanGR = (UIPanGestureRecognizer *) mgestureRecognizer;
mpanGR.minimumNumberOfTouches = 1;
mpanGR.maximumNumberOfTouches = 1;
}
if ([mgestureRecognizer isKindOfClass:[UISwipeGestureRecognizer class]])
{
UISwipeGestureRecognizer *mswipeGR = (UISwipeGestureRecognizer *) mgestureRecognizer;
mswipeGR.numberOfTouchesRequired = 1;
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,maximumNumberOfTouches似乎没有用.我仍然可以用一根或两根手指滚动.如果我将两个属性都更改为2,我可以成功禁用单指滚动并需要两次触摸.
有任何想法吗?
Jak*_*ler 19
我意识到这是一个老线程,但我花了很长时间才弄明白这一点,所以我想我会分享.这是我禁用双指滚动的方法:
// set up a two-finger pan recognizer as a dummy to steal two-finger scrolls from the scroll view
// we initialize without a target or action because we don't want the two-finger pan to be handled
UIPanGestureRecognizer *twoFingerPan = [[UIPanGestureRecognizer alloc] init];
twoFingerPan.minimumNumberOfTouches = 2;
twoFingerPan.maximumNumberOfTouches = 2;
[scrollView addGestureRecognizer:twoFingerPan];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3730 次 |
| 最近记录: |