1

我在按钮中单击此代码以[NSThread detachNewThreadSelector: @selector(spinBegininapp) toTarget:self withObject:nil];向用户显示后台线程正在运行的活动指示器,我放置此代码以启用活动指示器

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

}

它工作正常,当我单击按钮时,它显示活动指示器动画,当线程运行时它隐藏活动指示器,但我需要显示进度视图而不是活动指示器,它根据线程进行,如果线程完成,它需要完全达到进度并自我隐藏。这可能吗?

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 回答