Обновить iPhone для прогресса - PullRequest
0 голосов
/ 20 сентября 2010

Как бы я показал, что индикатор выполнения работает, но в target-c нет Refresh (), как в .net, что бы я использовал

, например

contactprogress.progress = 0.5;   
StatusLabel.text = @"Status: Address Found";

Как мне обновить представление, чтобы показать, что прогресс изменился, и показать пользователю статус StatusLabel?

Спасибо

Мейсон

Ответы [ 3 ]

1 голос
/ 21 сентября 2010

Основываясь на ваших комментариях к двум другим ответам, вы выполняете некоторую вычислительную задачу, которая занимает несколько секунд, и представление не обновляется во время этой задачи.Вы можете попробовать использовать два потока (не так страшно, как кажется), чтобы пользовательский интерфейс мог продолжить обновление, пока задача выполняет свою задачу.

Вот пример.

Руководство по программированию потоков в справочной библиотеке iOS

0 голосов
/ 20 сентября 2010

Звучит так, как будто вы хотите обновить индикатор выполнения и текст повторно с некоторым интервалом времени.Вы можете использовать простой таймер.Читайте о таймерах здесь .Возможно, что-то вроде этого:

[NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(refreshProgress) userInfo:nil repeats:YES];

и:

- (void) refreshProgress:(id)sender {
  // figure out new progress bar and text values
  contactprogress.progress = 0.5;   
  StatusLabel.text = @"Status: Address Found";

  // check if we should stop the timer and hide the progress bar/status text
}

Это обновит ваш индикатор выполнения новыми значениями каждые 0,1 секунды.

0 голосов
/ 20 сентября 2010

Чтобы перерисовать UIView, вы можете использовать

[UIView setNeedsDisplay];

Однако это понадобится вам только в очень редких случаях. Когда вы меняете, скажем, содержимое метки, ваш интерфейс должен обновляться мгновенно. Возможно, вы захотите предоставить больше кода / контекста для вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...