Как реализовать UIProgressView в iphone SDK - PullRequest
1 голос
/ 08 марта 2012

У меня есть этот код при нажатии кнопки [NSThread detachNewThreadSelector: @selector(spinBegininapp) toTarget:self withObject:nil];, чтобы показать индикатор активности для пользователя, работающего в фоновом потоке, я поместил этот код, чтобы включить индикатор активности

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

}

и работает нормально, когда я нажимаю на кнопку, отображается анимация индикатора активности, когда поток идет, он скрывает индикатор активности, но мне нужно показать Прогресс вместо индикатора активности, он прогрессирует согласно поток, и если поток завершает его, он должен полностью достичь прогресса и самостоятельно скрыть. Это возможно.

Ответы [ 2 ]

6 голосов
/ 07 мая 2013
#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%

3 голосов
/ 08 марта 2012

Вы можете добавить представление прогресса, без сомнения, но обычно оно используется для определенных количеств, таких как время или данные ... например. Если вы загружаете файл размером 2 МБ, вы всегда можете сказать, сколько данных вы скачали, и показать в виде прогресса в качестве фактора. Так что если что-то подобное происходит внутри вашей темы, вы можете использовать это ..

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

вам просто нужно обновить ваш прогресс по мере изменения значения .... надеясь, что это поможет.

...