UIImagePickerController加载栏/弹出后使用

时间:2013-05-07 10:48:21

标签: iphone uiviewcontroller

我目前正在开发我的iphone应用。当我用UIViewController拍照时,我会对它进行处理(一些旋转,转换等等),然后在拍摄这张照片后立即显示转换结果。

问题在于,当按下“使用”按钮时,应用程序正在处理图片几秒钟,但用户对此一无所知,并继续点击“使用”按钮的原因他认为这不起作用。

所以我想展示一个流行语“Loading ...”或加载图片,只是为了让用户知道“使用”按钮有效。

但我的弹出窗口仅在工作完成后才出现,而不是在......之前出现。

这是我的代码。

- (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 个答案:

答案 0 :(得分:1)

使用MBProgressHUD它很容易使用&显示消息。下载MBProgressHUD.h& m班

从这里开始: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;&在.h class&中创建属性@property (nonatomic, retain) MBProgressHUD *hud;在.m课程中也是@synthesize hud;