1

NSTimer別のクラスに 10 秒で発火するように指示する を作成する必要があり、それを使用して determinate をアニメートしたいと考えていNSProgressIndicatorます。また、不確定の進行状況インジケーターを確定に変更する方法を知る必要があります。これに関するAppleのドキュメントを見つけることができましたが、より詳細な説明が役立ちます.

4

2 に答える 2

4

不確定から確定へNSProgressIndicatorIBで変更できます。あなたのprogressIndicatorを選択し、属性インスペクターに移動して、次のように不確定チェックボックスをオフにします。

スクリーンショット

または、プログラムで実行できます。

[progressIndicatorOutlet setIndeterminate:NO];

注: progressIndicatorOutlet はあなたのNSProgressIndicatorアウトレットなので、忘れないIBOutletでください。


NSProgressIndicatorアニメーションを決定します。

次のように値を設定して変更するだけです。

[progressIndicatorOutlet setDoubleValue:10];

注: progressIndicatorOutlet はあなたのNSProgressIndicatorアウトレットなので、忘れないIBOutletでください。


NSTimer:

簡単なタイマーの例:

//Place this where You want to call class after 10 sec. (for example: when button pressed)
//It will call class with name callAfter10sec after 10 sec. Place in there what You need to do. 

[NSTimer scheduledTimerWithTimeInterval:10.0
                                 target:self
                               selector:@selector(callAfter10sec:)
                               userInfo:nil
                                repeats:YES];

次のようなコメントで言及したクラスを追加することを忘れないでください。

-(void)callAfter10sec:(NSTimer *)time {
    // Do what You want here

}
于 2012-05-20T21:08:41.010 に答える
0

それが役に立てば幸い。

次の方法を使用して、期待されることを達成できます

NSInteger progressValue;
NSTimer *timerObject;

progressValue = progressMaxValue;

timerObject = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(incrementProgressBar) userInfo:nil repeats:YES];

[timerObject fire];
[self.progressBar setMinValue:progressMinValue]; 
[self.progressBar setMaxValue:progressMaxValue];
[self.progressBar setDoubleValue:progressValue];

- (void)incrementProgressBar {
    // Increment the progress bar value by 1
    [self.progressBar incrementBy:1.0];
    progressValue--;
    [self.progressBar setDoubleValue:progressValue];
}
于 2015-10-02T11:24:36.447 に答える