比如用户用大拇指左右滑动屏幕时,由于不能做到绝对水平滑动,所以会是一个弧线,时而是向上的时而是向下的时而是左右的,ios端要如何准确的理解这只是用户在水平方面的一个左滑或右滑,用户自始至终都没有上下滑动或下拉刷新的企图。
反之,又是用户的上下滑动或者下了刷新时,也不可能做到完全垂直下来,也会有左右平移的一瞬间,这时候ios端又要如何准确的理解这只是用户在垂直方面的一个上滑或下滑或下拉刷新,用户自始至终都没有左右滑动或左滑右滑的企图。
如果做不到这一点,你用大拇指左右滑动屏幕时,ios会有一瞬间去下拉刷新数据去了,致使你的左滑右滑变的异常卡顿,用户体验瞬间跌至谷底,不但卡,那个刷新数据的小图标也会不时闪现一下~又一下~
我目前遇到的问题就是这样,ios给我开发完了,打开apphpi,在页面之间左右滑动时就会伴随着下拉刷新的卡顿,简直没办法直视,说了很多次就是改不好~除非我打着尺子左滑右滑~
比较笨的办法 记录用户操作时的起始坐标 如果手指移出屏幕时的最后一次坐标x小于起始坐标x 那就是左滑反之就是右滑
上下 左右 操作理论上会有个倾向性,比如上下滑的倾向性的y值一般都会大于x值一些 , 同理左右滑x值会大于y值 (这里的值对应的是绝对值) 你可以根据这个设置自己的一个判断区间
触摸屏事件,按下、滑动、抬起或中断,总会产生xy方向上的数值变化,如果是默认事件干扰,可能与滚动条也有关,首先页面的滚动条能不要就不要,其次在滑动事件中试着关掉对应元素默认事件,阻止冒泡,然后对比滑动前后两个轴向的变化比例,变化比例占绝对优势的就是主要滑动方向。这个方法的弊端是需要滑动完成或中断才能计算结果,且影响默认事件。还可以改进,如果想要更迅速丝滑的体验,可以在滑动过程中分段运算,计算一段响应一段。
另外如果不走运默认事件无法取消,可以相对运动抵消,不过需要完善节流或防抖以免耗费太多性能。
应该有属性可以判断