UIScrollView 的滚动和点击冲突解决

[复制链接]
35 5
若在某个view需要响应点击事件,且该view上有一个scrollView,该scrollView还可以滚动,此时将出现滚动和点击冲突,解决办法如下:(苹果推荐方法)



  • [view addSubView: scrollView];
  • scrollView.userInteractionEnabled = NO;
  • [view addGestureRecognizer: scrollView.panGestureRecognizer];




不过此处需要注意的是,若scrollView被添加到一个UIControl类型的视图上时,上述将会出现scrollView不可滚动情况(原因不知)。针对此的解决方法如下:



  • [view addSubView: button];
  • [button addSubView: scrollView];
  • scrollView.userInteractionEnabled = NO;
  • [view addGestureRecognizer: scrollView.panGestureRecognizer];

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x




上一篇:The Apple Developer Program License Agreement has been updated.
下一篇:ios 10.2.1系统在数据请求完reloadData崩溃,11上没事

举报 使用道具

回复

5 个评论

猪窝-0-  新手上路  发表于 2018-5-9 18:03:04  | 显示全部楼层
不知道你的问题解决了没,反正我看完你写的我的问题解决了!!!

举报 使用道具

回复
whale  新手上路  发表于 2018-5-9 18:08:32  | 显示全部楼层
没人知道吗???


自己顶一下!!!!

举报 使用道具

回复
yoka  新手上路  发表于 2018-5-9 18:16:50  | 显示全部楼层
问题来了,为什么scrollView被添加到UIControl类型的视图上之后,这种方式就不行了呢?

如:

在一个button上添加一个scrollView,为了能响应button的点击事件,执行此语句:




  • scrollView.userInteractionEnabled = NO;




又为了能使scrollView可滚动,执行此语句:



  • [button addGestureRecognizer: scrollView.panGestureRecognizer];

         


但第二个语句就如同失效一般,scrollView就是不滚了。。。。



猜想是不是UIControl不响应panGesture呢?于是,手动创建一个panGesture,并添加到button上,如下:


  • UIPanGestureRecognizer *tapG = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan)];

  • [button addGestureRecognizer:tapG];




结果手势的处理方法pan执行了,为什么????why????



求大神指点!!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
sjshao  新手上路  发表于 2018-5-10 01:13:04  | 显示全部楼层
若在某个view需要响应点击事件,且该view上有一个scrollView,该scrollView还可以滚动,此时将出现滚动和点击冲突,解决办法如下:(苹果推荐方法)



  • [view addSubView: scrollView];
  • scrollView.userInteractionEnabled = NO;
  • [view addGestureRecognizer: scrollView.panGestureRecognizer];




不过此处需要注意的是,若scrollView被添加到一个UIControl类型的视图上时,上述将会出现scrollView不可滚动情况(原因不知)。针对此的解决方法如下:



  • [view addSubView: button];
  • [button addSubView: scrollView];
  • scrollView.userInteractionEnabled = NO;
  • [view addGestureRecognizer: scrollView.panGestureRecognizer];

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

搜索
热搜: iOS swift 下拉刷新
  • 版块推荐
  • 百宝箱

图文热点

更多

精华推荐

更多

社区学堂

更多

客服中心

关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表