我有一个带有UISlider的iPhone应用程序。当我的用户按下播放按钮时,我希望我的滑块从值1缓慢移动到值100.滑块在录制期间滑动,当我的用户按下播放按钮时播放。 / p>
我查看了UISlider文档。唯一可能对我有帮助的方法是setValue:animated:
方法。但是,当动画=是时,滑块移动到100的速度太快了。
有什么方法可以减慢它的速度吗?
答案 0 :(得分:5)
你可以让UIView为自己设置动画,而不是自己编写补间或编写回调。例如,这会将滑块设置为在5秒内从其当前值开始的最大值。而且比自己尝试做得更顺畅。
- (IBAction)play:(id)sender {
[sender setEnabled:NO];
[UIView animateWithDuration:5.0 animations:^{
self.slider.value = self.slider.maximumValue;
}];
}
如果你不相信我 - 这是sample project that you can download为你自己看的:
答案 1 :(得分:0)
您应该使用属于NSTimer的scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
来更慢地增加滑块。增加每个刻度线上滑块的位置。像这样:
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];
}
}