我在我的应用中使用滑块。我已经完成了所有设置,我面临的唯一问题是我希望滑块值不更新的标签。看看我的代码。 我有一个按钮,点击动画滑块。我无法更新我的标签,因为它在整个动画中显示0.0。 任何帮助将受到高度赞赏。
- (IBAction)btnClicked:(id)sender
{
[UIView animateWithDuration:10 animations:^{
[self.slider setValue:0.0 animated:true];
} completion:^(BOOL finished) {
[UIView animateWithDuration:10 animations:^{
[self.slider setValue:100.0 animated:true];
}];
}];
}
答案 0 :(得分:1)
您的代码无效,因为您尝试将最大值设置为滑块,以便仅使用动画设置最大值。试试我的代码可能对你有所帮助。
使用此
更改您的btnClicked - (IBAction)btnClicked:(id)sender {
[self.slider setValue:0 animated:true];
[self setSliderValue:1];
}
添加此setSliderValue方法
- (void)setSliderValue:(float)value {
[UIView animateWithDuration:0.2 animations:^{
[self.slider setValue:value animated:true];
} completion:^(BOOL finished) {
self.lblSliderValue.text = [NSString stringWithFormat:@"%0.0f", self.slider.value];
if (self.slider.value != self.slider.maximumValue) {
[self setSliderValue:value+1];
}
}];
}
希望这会对你有所帮助。
答案 1 :(得分:0)
试试这样:
- (IBAction)btnClicked:(id)sender
{
[self.slider setValue:0.0 animated:true];
[UIView animateWithDuration:10 animations:^{
[slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
} completion:^(BOOL finished) {
[UIView animateWithDuration:10 animations:^{
//[self.slider setValue:100.0 animated:true];
}];
}];
}
sliderChanged
方法是这样的:
- (void)sliderChanged:(UISlider *)slider {
self.label.text = [NSString stringWithFormat:@"%0.2f", slider.value];
}