1

バックグラウンドスレッドが実行されていることをユーザーに示すアクティビティインジケーターをボタンクリックで表示するこのコードがあります[NSThread detachNewThreadSelector: @selector(spinBegininapp) toTarget:self withObject:nil];。アクティビティインジケーターを有効にするためにこのコードを配置します

- (void)spinBegininapp
{
    _activityindictor.hidden = NO;

}

ボタンをクリックすると、アクティビティインジケーターのアニメーションが表示され、スレッドが進むとアクティビティインジケーターが非表示になりますが、アクティビティインジケーターの代わりにprogressViewを表示する必要があります。スレッドに従って進行します。スレッドが終了した場合は、進行状況に完全に到達する必要があり、自己非表示が可能です。

4

2 に答える 2

6
#pragma mark - Loading Progress

static float progress = 0.0f;

-(IBAction)showWithProgress:(id)sender {
   progress = 0.0f;
   _progressView.progress = progress;
   [self performSelector:@selector(increaseProgress) withObject:nil afterDelay:0.3];
}

-(void)increaseProgress {
   progress+=0.1f;
   _progressView.progress = progress;    
   if(progress < 1.0f)
     [self performSelector:@selector(increaseProgress) withObject:nil afterDelay:0.3];
   else
    [self performSelector:@selector(dismiss) withObject:nil afterDelay:0.2f];
}

-(void)dismiss {
   [self progressCompleted];
}

進行状況を表示したいときはいつでもどこでも次の関数を呼び出すようになりました

[self showWithProgress:nil]; 

進行範囲は 0.0 から 1.0 の間です

1.0 は 100% を意味します

于 2013-05-07T15:13:21.777 に答える
3

間違いなく進行状況ビューを追加できますが、通常は時間やデータなどの明確な量に使用されます。2MB のファイルをダウンロードしている場合は、ダウンロードしたデータ量をいつでも確認でき、進行状況ビューに要因として表示されます。したがって、スレッド内で同様のことが起こっている場合は、これを使用できます..

UIProgressView *progressView = [[UIProgressView alloc] initWithProgressViewStyle:whateverStyle];
    progressView.progress = 0.75f;
    [self.view addSubview: progressView]
    [progressView release];

値が変化したときに進行状況を更新する必要があるだけです....これが役立つことを願っています.

于 2012-03-08T07:20:46.183 に答える