したがって、現在、ユーザーがスライドしたときにサブビュー内でアニメーションを開始することを目的としたUIViewcontrollerにUISliderがあります..ユーザーはスライドして、1 日の特定の時間帯のバッテリーのエネルギーを確認できます。
現時点では、ビューが読み込まれると、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];
しかし、何らかの理由で一度しか発火しません....何かアイデアはありますか?