关于ScrollView滚动事件与内部按钮点击事件冲突的问题
来源:互联网 发布:数据库系统导论第七版 编辑:程序博客网 时间:2024/06/02 00:16
在做签到系统的时候,当玩家当天内首次进入游戏时自动弹出签到界面。界面上有一个ScrollView,里面是一个个按钮(签到奖励),点击签到奖励可以查看详情。
在不做任何处理的时候遇到的问题如下:
如果手指在按钮上滑动,ScrollView的滚动效果出现了,但是按钮的点击事件也触发了,这显然不是我们想要的效果。
第一次失败尝试:
由于按钮的层级位于ScrollView之上,设置按钮的触摸吞噬事件,使得触摸事件向下传递,同时两个事件不会同时响应,但这也造成了一个新的问题,在按钮所在的位置,手指滑动ScrollView无法出现滚动效果,这是由于把按钮的触摸吞噬事件被打开,下层的ScrollView接收不到touchBegin,touchMoved和touchEnd。
self.button:setSwallowTouches(true); //设置按钮触摸吞噬
成功的解决办法:
function PresentCell:presentIconClick(_sender, _eventType) if _eventType == ccui.TouchEventType.began then self.flag = true; self.beginTouchPoint= _sender:convertToWorldSpace(cc.p(_sender:getPositionX(), _sender:getPositionY())) return; elseif _eventType == ccui.TouchEventType.moved then local offsetPexil = 5; local movedPoint = _sender:convertToWorldSpace(cc.p(_sender:getPositionX(), _sender:getPositionY())) if (movedPoint.x -self.beginTouchPoint.x) * (movedPoint.x - self.beginTouchPoint.x) >= offsetPexil * offsetPexil then self.flag = false; end return; end if self.flag then if self.iconClickHandler ~= nil then self.iconClickHandler(self.realShopData); end endend
touchEnd的时候判断flag是否为true。如果为true,则触发按钮点击。如果为false,则说明滑动了,则滚动scrollView。
0 0
- 关于ScrollView滚动事件与内部按钮点击事件冲突的问题
- 关于scrollView滚动和sprite点击事件冲突的问题
- 【问题】ScrollView截获按钮的点击事件?
- 【解决方案】如何解决输入框失焦事件与按钮点击事件冲突的问题
- 关于listView中adapter按钮点击事件冲突问题
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- 解决ScrollView中嵌套ListView滚动效果冲突问题 & ListVIew点击事件失效
- listview 内部按钮的点击事件
- touch事件与点击事件的冲突
- android ListView 中点击事件与其他控件点击时间冲突问题与自动滚动
- 关于click事件与touch事件冲突的问题
- 关于tap事件与tableView的点击冲突
- 完美解决ScrollView与内部嵌套的TextView滚动冲突
- 完美解决ScrollView与内部嵌套的TextView滚动冲突
- Android 中listview 和scrollview 滚动冲突事件的解决方法
- scrollView 的点击事件
- 【HDU】5928 Birthday Gift【极角排序+dp】
- android关于多dex打包的理解
- iOS NSError详解 NSError错误code对照表 自定义、定制NSError 一看就懂
- java快速排序算法
- android 桌面控件appwidget
- 关于ScrollView滚动事件与内部按钮点击事件冲突的问题
- 测试
- 不定义第三个变量,如何交换两个变量的值?
- java子类构造函数是否需要调用父类的构造函数
- webview系列:webview的简单使用
- Java类加载顺序
- checking whether the C++ compiler works... no configure: error: in `/root/gperftools-2.1': configure
- 深入浅出JavaScript之this
- 第五周项目3-括号的匹配