我目前正在开发我的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];
}
答案 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;
。