ios – 滚动指示器在UIScrollView禁用d跳时被卡住

ios – 滚动指示器在UIScrollView禁用d跳时被卡住,第1张

概述我有这个问题,我在任何地方都找不到任何其他的提及. 基本上,如果我在UIScrollView中禁用d跳(因此UITableView等派生也会受到影响),如果用户滚动到顶部,则可能会使滚动指示器卡住,然后,使用另一个手势,尝试使用快速滑动继续滚动. 一旦发生这种情况,滚动指示器将不会消失,除非用户再次滚动或点击滚动视图.最大的问题是scrollview会捕获那个tap,所以如果你试图点击表格单元格, 我有这个问题,我在任何地方都找不到任何其他的提及.

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

一旦发生这种情况,滚动指示器将不会消失,除非用户再次滚动或点击滚动视图.最大的问题是scrollvIEw会捕获那个tap,所以如果你试图点击表格单元格,第一次就不会发生任何事情.

我在我的设备和模拟器上只使用了一个准确的应用程序来测试它,它似乎只是UIScrollVIEw的一般问题并禁用d跳;然而,就像我说的,我在互联网上找不到任何其他提及.

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

解决方法 您是否为滚动视图添加了点击手势,如果没有,请尝试添加它?
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self    action:@selector(resignsKeyboard)];    [self.scrollVIEw addGestureRecognizer:singleTap];    singleTap.numberOfTapsrequired = 1;    singleTap.delegate = self;

在接口文件中添加委托UIGestureRecognizerDelegate,然后实现tap手势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];}
总结

以上是内存溢出为你收集整理的ios – 滚动指示器在UIScrollView禁用d跳时被卡住全部内容,希望文章能够帮你解决ios – 滚动指示器在UIScrollView禁用d跳时被卡住所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1099758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存