C3.28.1Gesture direction lock设计研究
拖动或滚动开始后,方向锁定会把后续输入吸附到主轴方向
别名: 方向锁定 · 轴向吸附 · directional lock
概念解释
滚动或拖动一旦被判定了主轴,方向锁定(directional lock)就把后续位移投影到该轴:竖直列表丢掉 X,横向画廊丢掉 Y。手指仍可斜着走,内容只沿主轴跟。锁定发生在手势已经开始之后,是同一层内的轴向吸附,不是嵌套结构里选哪一层。
机制
人的轨迹不是几何直线。若不投影,竖直滚动会左右晃,横向轮播会上下蹭。锁定把二维速度拆成主轴分量与正交分量,正交分量在锁定后被置零。UIScrollView 的 directionalLockEnabled、许多分页器的“锁轴”都是这个投影。它改变的是已经认领的那只识别器如何消费位移,不改变谁赢了起始竞争。未锁定的画布(地图)则保留二维,因为主轴不存在。
怎么研究
让人沿指定角度拖动可滚列表,比较锁定开/关时内容的正交偏移、完成时间和主观“发飘”。自变量包括锁定与否、列表主轴。因变量要有正交像素积分,而不只是最终是否翻页。眼动不是必需——内容轨迹已经够用。
边界
地图、绘图、游戏摇杆需要二维,锁定会把斜向意图剪断。嵌套的横向轨选层是另一只分类器,虽然也看角度。锁定在抬手后应解除,否则下一次手势会继承错误主轴。方向锁不是速度阈值:慢速斜拖同样会被吸到轴上。
怎么落地
- 单轴列表默认打开方向锁;自由画布默认关闭。
- 锁定后把正交位移丢掉,不要把它累积成另一次滚动。
- 斜向 20° 拖一条纵向列表:内容应几乎只竖着走;若明显横移,锁没生效。