1

我试图在更改值时减慢 UISlider 的动画。

到目前为止,我已经尝试过旧的 UIView 动画方法:

[UIView beginAnimations:@"slider" context:nil];

[UIView setAnimationDuration:5.0];
[self.slider setValue:2 animated:YES];

[UIView commitAnimations];

以及新的基于块的方法:

[UIView animateWithDuration:5.0 
         animations:^{
            [self.slider setValue:2 animated:YES];
                 }];

我尝试过设置和不设置animated:YES值。在所有情况下,滑块仅以默认速度进行动画处理。

我应该考虑另一种策略来自定义动画的速度吗?

我应该将滑块子类化并覆盖那里的任何东西吗?

4

1 回答 1

1

查看 Ole Begemann 的OBSlider 这是一个具有可变擦洗速度的 UISlider 子类(如在 iOS 上的 iPod 应用程序中所见)。我并不是说这正是您想要的,但您可以看到它是如何实现的,因为代码托管在 GitHub 上。基本上,它继承并覆盖了触摸跟踪方法:UISlider

  • beginTrackingWithTouch:withEvent:
  • continueTrackingWithTouch:withEvent:
  • endTrackingWithTouch:withEvent:
于 2011-06-10T20:43:49.613 回答