我有一个带有 UISlider 的 iPhone 应用程序。当我的用户按下播放按钮时,我希望我的滑块从值 1 缓慢移动到值 100。当我的用户按下播放按钮时,滑块会在播放记录的持续时间内滑动。
我查看了 UISlider 文档。唯一可能对我有帮助的方法是setValue:animated:
方法。但是,当动画=是时,滑块移动到值 100 的速度太快了。
有什么办法让它慢一点吗?
您可以让 UIView 自己制作动画,而不是自己进行补间或编写回调。例如,这会使滑块在 5 秒内从当前值变为最大值。这比尝试自己做要顺利得多。
- (IBAction)play:(id)sender {
[sender setEnabled:NO];
[UIView animateWithDuration:5.0 animations:^{
self.slider.value = self.slider.maximumValue;
}];
}
如果您不相信我 - 这是一个示例项目,您可以下载以亲自查看:
您应该使用scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
which 是NSTimer的一部分来更慢地增加滑块。在每个刻度上增加滑块的位置。像这样的东西:
NSTimer *timerForSlider = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateSlider) userInfo:nil repeats:YES];
-(void)updateSlider {
[slider setValue:slider.value+1];
if(slider.value == MAXIMUM_VALUE) {
[timerForSlider invalidate];
}
}