MBProgressHud очищает представление при показе загрузчика

Я использую MBProgressHud для отображения индикатора загрузки. Вот мой код отображения:

self.hud = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:self.hud];

self.hud.delegate = self;
self.hud.labelText = @"Loading :)";

[self.hud showWhileExecuting:@selector(CreateCollage) onTarget:self withObject:nil animated:YES];

Проблема в том, что когда это запускается, он очищает представление, содержащее кучу фотографий. Это сбивает с толку моего пользователя, потому что он теряет визуальную систему отсчета.

Если я не использую MBProgressHud, вы увидите существующий набор фотографий до тех пор, пока CreateCollage не будет завершено, и он будет просто отставать или зависать в следующем наборе, что отчасти нормально, но нежелательно. Есть идеи? Спасибо


person user339946    schedule 09.03.2012    source источник


Ответы (1)


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

Я предлагаю попробовать это вместо этого:

self.hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
self.hud.delegate = self;
self.hud.labelText = @"Loading :)";

И назовите это в конце вашего действия, которое CreateCollage

[MBProgressHUD hideHUDForView:self.view animated:YES];
person Ugur Kumru    schedule 09.03.2012
comment
Спасибо за ответ. Похоже, это не работает, так как при запуске CreateCollage кажется, что он занимает достаточно ресурсов, которые загрузчик не показывает, пока не будет завершен следующий набор. Таким образом, в основном вы увидите, как загрузчик вспыхивает прямо перед тем, как следующий набор будет показан в представлении. Однако это позволяет существующему набору фотографий оставаться в поле зрения. - person user339946; 09.03.2012
comment
Я думал, что это асинхронное действие. Конечно, если он блокирует, это не сработает. - person Ugur Kumru; 09.03.2012