26

Apple 的 iPod(音乐)应用程序有一个滑块(我猜是 UISlider),它具有可变的擦洗速度:垂直拖动的滑块越远,反映在滑块值变化中的水平拖动速度的比例就越小。有没有人想出如何复制这种行为?

4

2 回答 2

32

启发我找到解决方案的好问题。我创建了一个名为OBSlider的类,它支持可变擦洗速度。

简而言之,解决方案:子类 UISlider,覆盖-continueTrackingWithTouch:withEvent:self.value根据自己的触摸移动进行变化的计算。因此,您可以自由地影响要乘以触摸移动以获得新滑块值的因子。

有关详细信息,请阅读我的博文: OBSlider,具有可变擦洗速度的 UISlider 子类

于 2011-01-03T01:58:00.780 回答
4

干得好奥莱!当手指靠近 UISlider 时,我做了一些小的修改以获得更类似于 iPod 应用程序滑块的工作方式!基本上我处理一个变量来跟踪与手指位置对应的值,如果用户越来越近,我会应用一个不同的公式(这并不完美,可以改进很多)。

我的叉子在这里可用:http: //github.com/sylverb/OBSlider

于 2011-01-04T23:07:54.907 回答