Ios 在UISlider上添加具有时间延迟的子视图?
我有一个Ios 在UISlider上添加具有时间延迟的子视图?,ios,nstimer,uiviewanimation,uislider,Ios,Nstimer,Uiviewanimation,Uislider,我有一个UISlider,我正试图通过动画在UISlider的轨迹上动态添加子视图。在添加每个子视图之前,我需要1秒的时间延迟。如何实现这一点?这是如何实现这一点的基本设置: @interface ViewController () { NSTimer *_timer; CGRect sliderFrame; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]
UISlider
,我正试图通过动画在UISlider
的轨迹上动态添加子视图。在添加每个子视图之前,我需要1秒的时间延迟。如何实现这一点?这是如何实现这一点的基本设置:
@interface ViewController () {
NSTimer *_timer;
CGRect sliderFrame;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.slider.minimumValue = 0.0f;
self.slider.maximumValue = 100.0f;
sliderFrame = self.slider.frame;
_timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(addLabel:) userInfo:nil repeats:YES];
[_timer fire];
}
- (void) addLabel:(NSTimer*) timer {
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(sliderFrame.origin.x + self.slider.value/100 * self.slider.frame.size.width, sliderFrame.origin.y - 10, 20, 20)];
label.text = @"1";
[self.view addSubview:label];
}
@end
假设您正在使用动画块,则在块内可以使用setAnimationDelay。比如,
[UIView animateWithDuration:5.0 animations:
^{
[UIView setAnimationDelay:1.0];
...
} completion:^(BOOL finished){
...
}];
这将在开始前以1秒的延迟制作一个5秒的动画。您可以使用动作方法连接valueChangeEvent 可以在该方法中放置动画块,并将开始动画之前等待的秒数作为延迟参数传递
[UIView animateWithDuration:(NSTimeInterval) delay:(NSTimeInterval) options:(UIViewAnimationOptions) animations:^(void)animations completion:^(BOOL finished)completion]
然后,您可以根据需要更改并添加具有任何动画的视图