0

私はObjective Cで開発している初心者です。

アプリケーションにプラグインをインストールするコードに取り組んでいます。.zip パッケージをダウンロードして解凍し、一部のデータを sqlite データベースにコピーします。

アプリのダウンロード中と解凍中を示す a があり、終了したらメソッドで a ボタンに追加UIAlertViewします。UIProgressViewUIAlertViewaddButtonWithTitle

UIAlertView の左上隅にボタンが表示される理由がわかりません。

これは私のコードの一部です:

ventana = [[UIAlertView alloc] initWithTitle:[[NSString alloc] initWithFormat: @"Instalando %@", codigo] 
                                             message:@"Por favor, no apague el dispositivo ni cierre la aplicación." delegate:nil cancelButtonTitle:nil  otherButtonTitles: nil];

actividad = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
actividad.frame = CGRectMake(20, 110, 20, 20);

progreso = [[UIProgressView alloc] initWithFrame:CGRectMake(50, 115, 215, 9)];
[ventana addSubview:actividad];
[actividad startAnimating];
[ventana addSubview:progreso];
[ventana show];

-- some stuff (downloading, uncompressing, updating my UIProgressView...) --
[progreso removeFromSuperview];
[actividad removeFromSuperview];
[ventana addButtonWithTitle:@"Aceptar"];
ventana.message = @"Instalación finalizada";

画像はありますが、新規ユーザーなのでここに投稿できません。

UIAlertView (ventana) の左上隅にボタンが表示される理由は誰でも知っています。

4

1 に答える 1

3

あなたが使用している方法UIAlertViewは一種の...悪いです。ボタンが0のUIAlertViewは絶対に表示しないでください。これを「デバイスの電源を切らないでください」というメッセージとして使用することは、お勧めできません。アラートビューの「受け入れられた」使用法は、重要なことが起こったことをユーザーに通知することです。ただし、主張する場合は、デフォルトでキャンセルボタンを設定して、必要に応じて操作を停止できるようにする必要があります。操作が終了したら、ボタンを追加します。UIAlertView存在しないボタンのリストにボタンを追加しようとすると、混乱する可能性があります(0個のボタンで初期化したため)。

ただし、それを実行するためのより良い方法は、メッセージを含む一般UIView的なものをダウンロードしているときに進行状況インジケーターを表示することです。UILabel次に、完了したら、ラベルを変更して「Instalaciónfinalizada」メッセージを表示し、その下にボタンを表示します。私は知っています、それはあなたがすでに持っているものを複製しているようですが、あなたの説明のどこにも、の使用を要求していることがわかりませんUIAlertView

于 2009-09-11T13:49:26.530 に答える