1

我有一个带有 UISlider 的 iPhone 应用程序。当我的用户按下播放按钮时,我希望我的滑块从值 1 缓慢移动到值 100。当我的用户按下播放按钮时,滑块会在播放记录的持续时间内滑动。

我查看了 UISlider 文档。唯一可能对我有帮助的方法是setValue:animated:方法。但是,当动画=是时,滑块移动到值 100 的速度太快了。

有什么办法让它慢一点吗?

4

2 回答 2

5

您可以让 UIView 自己制作动画,而不是自己进行补间或编写回调。例如,这会使滑块在 5 秒内从当前值变为最大值。这比尝试自己做要顺利得多。

- (IBAction)play:(id)sender {
    [sender setEnabled:NO];
    [UIView animateWithDuration:5.0 animations:^{
        self.slider.value = self.slider.maximumValue;
    }];
}

如果您不相信我 - 这是一个示例项目,您可以下载以亲自查看:

于 2013-06-19T18:30:19.140 回答
0

您应该使用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];
    }
}
于 2013-06-19T17:37:52.600 回答