K4.03.2rotary for 1D lists and continuous values设计

适合线性列表与连续量

别名: 一维旋转 · 连续量调节 · crown scrolling

概念解释

旋转是一维的:一次转动只有一个方向上的多少。它匹配两类对象——排成一条的列表,以及音量、倒计时分钟、地图缩放这种连续量。二维选择(在地图上点一个位置、在表盘上点一个复杂功能)没有「沿着转」的自然路径;是否判断、两个无关选项之间的跳转,也不是转出来的。这条谈对象的维度与旋转是否同构,不谈转的时候会不会挡住字,也不谈顺时针该对应「下一项」还是「上一项」。

机制

旋转编码器输出的是沿一个轴的位移。人的预期是:转得越多,沿着那条已经看见的顺序走得越远,或那个已经在变的数字变得越大/越小。线性列表把顺序外化成一条可走的路,连续量把大小外化成一截可加减的轴,两者都让「转」有地方可去。网格、地图、树形菜单把选择空间折成两维或层级,旋转只能被任意地指定为其中一维,另一维还要靠别的输入补,人就会搞不清这次转是在改哪一维。二值开关更糟:转过去再转回来不像按下,中途的那些「既不是开也不是关」没有语义。同构一旦成立,人甚至不用看清每一项,凭转速就能逼近目标;不同构时,每一格都要重新解释。

边界

很长的一维列表仍然费时,旋转只解决维度匹配,不解决「这项活该不该在腕上做完」。分层菜单若每一层都是短列表,旋转可以逐层用,但层与层之间必须另有进入/返回,不能把旋转复用成「转到底就进下一层」。带刻度的表圈在潜水、计时这类任务上是连续量的物理化,不经过屏幕列表,仍属这条的匹配。离散但有序的档位(运动类型、重复次数)可以当短列表用旋转;无序的标签集合(随便五个联系人)没有线性,旋转只是在随机跳。

怎么落地

  • 先问这个界面是不是一条有序的东西或一个可加减的量;不是,就不要把表冠设成主控制。
  • 列表按人已经理解的顺序排(时间、字母、远近),让转动方向始终沿着这条顺序,而不是沿着开发者的模块顺序。
  • 连续量在旋转时同时改变数字和一条可见的轴(弧、柱、针),避免只有数字在跳、轴不在场。
  • 验证:堵住表冠,只留触控,看任务是否仍可完成;再反过来只留表冠。若只留表冠时人不知道自己在改哪一维,或必须靠猜来选二维目标,说明旋转被用在了不同构的对象上。

延伸

  • 同组K4.03.1 旋转输入不遮挡屏幕 · K4.03.3 旋转与滚动的映射需一致
  • 相邻E2.12 滑块 · E4.02 列表项 · C1.11 滚轮与惯性滚动
  • 站内检索rotary encoder · one-dimensional input · continuous adjustment

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/K4.03.2