Я работаю над приложением обработки данных веб-сервисов и пытаюсь сделать приложение максимально быстрым. Когда выполняется определенный жест панорамирования с 3 пальцами, я вызываю метод, который отправляет обновленную информацию на сервер, чтобы получить новый пакет изображений для обновления существующих.
Итак, предположим, что в массиве 15 изображений, я отфильтрую их жестом 2 пальца, а затем, если я хочу что-то изменить в них, я могу сделать жест 3 пальца и получить тот же самый набор обратно. , только немного подправил (контрастность / яркость и пр.).
То, что я хочу, - это возможность обновлять imageView, который отображает изображения после получения первого изображения, чтобы дать пользователю представление о том, как будут выглядеть остальные в серии. Но независимо от того, что я пытаюсь, и независимо от того, сколько разных потоков я пытаюсь реализовать, я не могу обновить imageView до завершения всей загрузки. После завершения пакетной загрузки (которая обрабатывается в отдельном потоке) imageView обновляется новыми изображениями, и все отлично.
Первый шаг в этом процессе:
if(UIGestureRecognizerStateEnded == [recognize state]){
[self preDownload:windowCounter Level:levelCounter ForPane:tagNumber];// Where this method is what gets the first image, and tries to set it to the imageView
[self downloadAllImagesWithWL:windowCounter Level:levelCounter ForPane:tagNumber]; //And this method goes and gets all the rest of the images
}
Это мой метод предварительной загрузки:
-(void)preDownload:(int)window Level:(int)level ForPane:(int) pane{
int guidIndex = [[globalGuids objectAtIndex:pane] intValue];
UIImage *img = [DATA_CONNECTION getImageWithSeriesGUID:[guids objectAtIndex:guidIndex] ImageID:counter Window:window Level:level];
if(pane==0){
NSLog(@"0");
[imageView3 setImage:img];
}else if(pane==1){
NSLog(@"1");
[imageView31 setImage:img];
}else if(pane==2){
NSLog(@"2");
[imageView32 setImage:img];
}else if(pane==3){
NSLog(@"3");
[imageView33 setImage:img];
}
}
Итак, разделив это на два разных метода (в данный момент нет реализуемых потоков, эти методы вызываются до всего этого), я подумал, что после завершения метода preDownload, что imageView обновится, а затем управление продолжится до метода downloadAllImagesWithWL, но это не так.
Я что-то упустил здесь? Что я могу сделать, чтобы обновить элементы GUI, прежде чем этот второй метод будет запущен?