2

我愿意做这个小部件:

替代文字

只能选择ABC。

知道是否有人已经做过类似的事情吗?如果没有,你会怎么做?

4

2 回答 2

3

就我个人而言,我会使用标准 UISlider 并向 valueChanged 处理程序添加逻辑,这样一旦用户将滑块拖动到刻度上的任意点,代码就会确定哪个是最接近的“有效”值,并手动设置值到一个有效的数字。

例如,如果用户将滑块拖动到 0.9,则到有效点的距离为 0.9(到 A)、0.4(到 B)和 0.1(到 C)。所以代码会选择 C,并将 slider.value 设置为 1.0。如果您可以为该属性设置动画,则无法记住,但您可能可以。这对用户来说会更好看。

对于视觉效果,我会创建一个包含 UISlider 的容器类,以及每个有效值的 UILabel。根据它们的位置沿着滑块下方的刻度排列这些标签并不太难。通过适当的自动调整大小,无论您如何更改容器视图的形状,控件都应该看起来正确。

对于波兰语,我可能还会调整“已选择”标签的字体以使其加粗或其他内容,以使该项目已被选中更加明显。

于 2010-09-10T11:07:26.510 回答
1

如果点击或拖动在滑块的 A、B 或 C 区域内结束,我会将 UIGestureRecognizers 添加到“滑块图像”并将“滑块按钮”设置为相应位置。

于 2010-09-10T07:05:06.910 回答