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

次に、これら 2 つのクラスを 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 に答える