2009-05-25 3 views
0

В моем приложении один из моих просмотров занимает больше времени, чем обычно, для загрузки (это вид с прокруткой со многими изображениями), поэтому я решил, что я хочу, чтобы пользователь знал, что происходит во время загрузки , Поэтому я добавил индикатор выполнения, который использует таймер для того, как долго он обычно загружается. Единственная проблема заключается в том, что при нажатии кнопки iPhone по-прежнему загружает представление, а затем, когда открывается новое представление, появляется индикатор выполнения и запускает таймер. Как я могу установить его так, чтобы индикатор выполнения отображался в том же виде, что и кнопка, и когда при нажатии кнопки происходит просмотр второго представления, и когда индикатор выполнения заполняется, он переходит ко второму виду. Вот код, который у меня есть.Использование Progress Bar Загрузка нового представления

- (void) button 
{{

if (!self.baseSheet) { baseSheet = [[UIActionSheet alloc] initWithTitle:@"Please Wait" delegate:self cancelButtonTitle:nil destructiveButtonTitle: nil otherButtonTitles: nil]; [baseSheet setNumberOfRows:5]; [baseSheet setMessage:@"Loading Photos"]; UIProgressView *progbar = [[UIProgressView alloc] initWithFrame:CGRectMake(50.0f, 70.0f, 220.0f, 90.0f)]; progbar.tag = PROGRESS_BAR; [progbar setProgressViewStyle: UIProgressViewStyleDefault]; [baseSheet addSubview:progbar]; [progbar release]; } UIProgressView *progbar = (UIProgressView *)[self.view viewWithTag:PROGRESS_BAR]; [progbar setProgress:(amountDone = 0.0f)]; [NSTimer scheduledTimerWithTimeInterval: 0.5 target: self selector: @selector(incrementBar:) userInfo: nil repeats: YES]; [baseSheet showInView:self.view]; [[self navigationController] pushViewController:[[ScrollViewController alloc] init] animated:YES];

}}

ответ

0

Вы пробовали размещая бар рутину прогресса в совершенно отдельный метод?

Иногда я также сталкиваюсь с проблемами со скоростью выполнения некоторых подпрограмм в методе, особенно с учетом изменений UIView/UIImageView. Иногда изменения в некоторых связанных с просмотром подпрограммах фактически обновляются на экране быстрее, чем вещи, выполненные перед ними, на самом деле появляются. Я нахожу, что я обычно могу исправить это, поставив подпрограммы, которые слишком долго отображают изменения вида, в совершенно отдельный метод и вызывая этот метод ПЕРЕД.