我想为UiSlider设置动画,例如0.25到0.75然后回来.这应该向用户显示要做什么.
我试过这个:
[self incrementCounter:[NSNumber numberWithInt:0]]; -(void) incrementCounter:(NSNumber *)i { [Slider setValue:[i floatValue]/1000]; [self performSelector:@selector(incrementCounter:) withObject:[NSNumber numberWithInt:i.intValue+1] afterDelay:0.001]; }
但那不是那么顺利……我可以使用转换吗?
[Slider setValue:1 animated:YES];
快要…
[UIView animateWithDuration:2.0 animations:^{ [Slider setValue:0.2]; }]; [UIView animateWithDuration:2.0 animations:^{ [Slider setValue:0.5]; }];
只是动画第二个……
解决方法
您需要通过将第二个动画放在第一个动画的完成块中来链接动画:
-(IBAction)animateSlider:(id)sender { [UIView animateWithDuration:2 animations:^{ [self.slider setValue:.75]; } completion:^(BOOL finished) { [UIView animateWithDuration:2 animations:^{ [self.slider setValue:0.25];//or `[self.slider setValue:(.75)-(.5*finished)];` if you want to be safe }]; }]; }