防止 scrollview 上按钮在滚动中响应


防止 scrollview 上按钮在滚动中响应

在滚动时,经常会按到不想按到的按钮,十分影响用户体验,解决方法如下:

  • scrollview上添加按钮
1
2
3
4
5
6
7
8
9
10
for(let i = 0; i < 10; i++){
let countryCell = cc.instantiate(prefab);
let button = countryCell.getComponentInChildren(cc.Button);
let clickEventHandler = new cc.Component.EventHandler();
clickEventHandler.target = this.node; //这个 node 节点是你的事件处理代码组件所属的节点
clickEventHandler.component = "CountryDialog";//这个是代码文件名
clickEventHandler.handler = "onSend";//按钮触发方法名
clickEventHandler.customEventData = i;//按钮传参
button.clickEvents.push(clickEventHandler);
}
  • 按钮响应方法屏蔽处理
1
2
3
4
onSend (event, customEventData) {
// y方向滑动距离大于10像素,则不响应按钮事件
if(Math.abs(event.currentTouch._startPoint.y - event.currentTouch._point.y) > 10 ) return;
}