Ios 当UIScrollView禁用弹跳时,滚动指示器卡住

Ios 当UIScrollView禁用弹跳时,滚动指示器卡住,ios,cocoa-touch,uiscrollview,Ios,Cocoa Touch,Uiscrollview,我有这个问题,我在任何地方都找不到其他关于这个问题的提及 基本上,如果我在UIScrollView中禁用弹跳(因此UITableView等衍生产品也会受到影响),如果用户滚动到顶部,然后用另一个手势尝试使用快速滑动继续滚动,滚动指示器可能会卡住 一旦发生这种情况,滚动指示器将不会消失,除非用户再次滚动或点击滚动视图。最大的问题是scrollview将捕获该点击,因此如果您尝试点击一个表单元格,第一次什么也不会发生 我已经在我的设备和模拟器上用一个赤裸裸的应用程序进行了测试,这似乎只是UIScro

我有这个问题,我在任何地方都找不到其他关于这个问题的提及

基本上,如果我在UIScrollView中禁用弹跳(因此UITableView等衍生产品也会受到影响),如果用户滚动到顶部,然后用另一个手势尝试使用快速滑动继续滚动,滚动指示器可能会卡住

一旦发生这种情况,滚动指示器将不会消失,除非用户再次滚动或点击滚动视图。最大的问题是scrollview将捕获该点击,因此如果您尝试点击一个表单元格,第一次什么也不会发生

我已经在我的设备和模拟器上用一个赤裸裸的应用程序进行了测试,这似乎只是UIScrollView和禁用弹跳的一个普遍问题;然而,就像我说的,我在互联网上找不到任何其他提及这一点的内容


这只是一个bug吗?这是预期的行为吗?我做错什么了吗?如果这是一个bug,那么有人知道解决方法或修复方法吗?

您是否为scrollview添加了点击手势,如果没有,请尝试添加它

   UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self    action:@selector(resignsKeyboard)];
    [self.scrollView addGestureRecognizer:singleTap];
    singleTap.numberOfTapsRequired = 1;
    singleTap.delegate = self;
在接口文件中添加委托UIgestureRecognitizerDelegate,然后实现点击手势delgate方法

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
 if (self.scrollView.superview != nil)
    {
        if ([touch.view isKindOfClass:[UIButton class]]||[touch.view.superview.superview isKindOfClass:[UITableViewCell class]]||[touch.view.superview.superview.superview isKindOfClass:[UITableViewCell class]]||[touch.view.superview isKindOfClass:[UITableViewCell class]])
            // we touched our control surface
        {
            return NO; // ignore the touch
        }

    }

    return YES; // handle the touch
}
//要在滚动触摸上执行其他操作,如重新调整键盘,请在需要时使用

-(void) resignsKeyboard
{
    [self.view endEditing:YES];
    [self.scrollView setContentOffset:CGPointMake(0,0) animated:YES];
}

在我的例子中,我有两个
UIScrollView
s,一个嵌套在另一个中。 当内部滚动视图到达顶部时,我强制将
contentOffset.y
设置为
0
(我需要这样才能允许外部滚动视图开始滚动其内容视图)。这导致了此问题中描述的滚动视图不希望出现的行为

修复程序将
contentOffset.y
设置为
-1
,这允许滚动视图自然地(自行)回滚到0,并且取消挂起行为


希望这能帮助其他人✋

我现在也有同样或类似的问题。我想我现在将启用反弹。。。正如您所说,当这个问题发生时,下一次点击将被表视图“吞没”,因此一个单元格必须点击两次才能被选中等等。嗨,伙计们,你们找到解决这个问题的方法了吗?谢谢。这个bug(或功能,无论什么)在iOS 11、5年后仍然存在。我想我知道的唯一“修复”是启用
。反弹