因此,目前我在 UIViewcontroller 中有一个 UISlider,用于在用户滑动时在子视图中启动动画。. 基本上,当用户滑动时,我有这个电池,里面有一个填充物,用一个条形填充空电池图像,以指示内部的电源一个电池,用户可以滑动查看电池在一天中特定时间的电量。
目前,当视图加载时,我希望 UISlider 自动从滑块的开头开始滑动并在 5 秒内滚动到结尾。
我实现了一个循环,使用这个循环遍历 uislider 的所有值
for (int i = 0; i < [anObject count] - 2; i++)
{
sleep(.25);
NSUInteger index = (NSUInteger)(slider.value + 0.5); // Round the number.
[slider setValue:index animated:YES];
}
[anObject count] - 2
在一天中的这个时间等于 62,但会每 15 秒更改一次并增加一次,因为我正在从服务器获取数据。
但除此之外,为什么这不起作用?循环?
编辑:
这就是我对 NSTIMER 所做的
[NSTimer timerWithTimeInterval:0.25 target:self selector:@selector(animateSlider) userInfo:nil repeats:NO];
animateSlider
看起来像这样:
- (void)animateSlider:(NSTimer *)timer
{
NSLog(@"Animating");
NSUInteger index = (NSUInteger)(slider.value + 0.5); // Round the number.
[slider setValue:index animated:YES];
}
但是没有运气......为什么 NSTimer 没有“触发”......我模糊地记得有一种方法可以触发一个 nstimer 方法,但不确定是否需要......
编辑:
啊,它确实需要“火”....
NSTimer *timer = [NSTimer timerWithTimeInterval:0.25 target:self selector:@selector(animateSlider) userInfo:nil repeats:NO];
[timer fire];
但由于某种原因,它只触发一次......有什么想法吗?