1

我目前正在开发我的 iphone 应用程序。当我用 UIViewController 拍照时,我会处理它(一些旋转、变换等),然后在拍完这张照片后显示变换的结果。

问题是,当点击“使用”按钮时,应用程序在图片上工作了几秒钟,但用户对此一无所知,并继续点击“使用”按钮,因为他认为它没用。

所以我想显示一个弹出窗口说“正在加载...”或加载图片,只是为了让用户知道“使用”按钮有效。

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

这是我的代码。

- (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];
}
4

1 回答 1

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 类中导入它,同时在 .h 类和.m 类中#import "MBProgressHUD.h"声明MBProgressHUD *hud;和制作属性。@property (nonatomic, retain) MBProgressHUD *hud;@synthesize hud;

于 2013-05-07T11:02:34.633 回答