2013-05-07 2 views
1

В настоящее время я работаю над своим приложением для iphone. Пока я делаю снимок с UIViewController, я работаю над ним (некоторое вращение, преобразование, что угодно), затем я показываю результат преобразования сразу после съемки.UIImagePickerController loading bar/pop up после использования

Проблема в том, что при нажатии кнопки «Использовать» приложение работает на картинке в течение нескольких секунд, но пользователь ничего не знает об этом и продолжает нажимать кнопку «Использовать», потому что он думает, что это не сработало.

Поэтому я хотел бы показать поп-сообщение «Загрузка ...» или загрузочное изображение, чтобы пользователь знал, что кнопка «Использовать» работает.

Но мой всплывающий показывает только сразу после того, работа сделана, а не до ...

Вот мой код.

- (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIAlertView *waitingFor = [[UIAlertView alloc] initWithTitle:@"Chargement" message:@"Votre photo est en cours de traitenment, veuillez patientez quelques secondes." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [waitingFor show]; 

    myImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    /*My transformations*/ 

    [picker dismissModalViewControllerAnimated:YES]; 
} 

ответ

1

Использование MBProgressHUD это очень простой в использовании & дисплея сообщения. Скачать MBProgressHUD.h & м класс

здесь: https://github.com/cokecoffe/ios-demo/tree/master/MBProgressHUD

Затем добавьте эти два класса в ypor проекта & использование, как показано ниже:

- (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
    hud.delegate = self; 
    hud.labelText = @"Loading\nPlease Wait"; 
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.05 * NSEC_PER_SEC); 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void) 
        { 
         myImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 
         [MBProgressHUD hideHUDForView:self.view animated:YES]; 
        }); 
} 

, а затем проверить. Вы должны импортировать это в свой .h класс #import "MBProgressHUD.h" также объявить MBProgressHUD *hud; & сделать свойство @property (nonatomic, retain) MBProgressHUD *hud; в .h класс & также @synthesize hud; в .m класс.

+0

У вас возникла проблема с "hud.delegate = self;" линия. Я получил сообщение об ошибке «Назначение» id из несовместимого типа «BothView» const __strong ». BothView - мой класс UIViewController. – Tiffado

+0

Объявить в .h файле .... где вы объявляете своих делегатов .... – Vishal

+0

Здесь, как это в .h файле @interface ViewController: UIViewController ..... – Vishal

Смежные вопросы