0

私のアプリでは、リクエストがサーバーに送信されたときにロード画面が表示され、応答が受信されたときにそのロード画面が削除されます。

ロード画面を表示するために、私は使用し、そのアルファ0.5UIViewに減らして、背景ビューが表示されるようにしました。

私の問題は、ロード画面がまだ表示されているときに、ユーザーがバックグラウンドビューに表示されているボタンをクリックできることです。

私が欲しいのは:ロード画面が表示されているとき、ユーザーは画面上のどこをクリックできないようにする必要があります。私はuserInteractionEnabled 偽りましUIViewたが、それでもユーザーはボタンをクリックすることができますが、なぜですか?

私がどこで間違っているのか、どうすればこれを達成できるのかを誰かが知っているなら、私に知らせてください。

前もって感謝します!

4

4 に答える 4

1

UIView では対話が無効になっている可能性がありますが、ボタンがビュー階層の上位にある場合は、ビューの TOP にあるため、引き続きアクセスできます。

これが nib で作成されたビューである場合は、ビュー スタックの一番上にあることを確認してください。

または、プログラムによって関数の最後にサブビューとして追加するか、mainWindow を追加する場合 (メイン ウィンドウに追加する際は非常に注意してください。これは階層の最上位です)

于 2012-08-22T09:27:26.757 に答える
0

はい、わかりました。UIView に対して userInteractionEnabled false を実行したため、メイン ビューにあるボタンにクリック イベントが送信されました。userInteractionEnabled false を削除しましたが、正常に動作しています。

于 2012-08-22T13:03:16.303 に答える
0

同様に、ユーティリティ オープン ソース ライブラリが利用可能です。

iOS オープンソース プロジェクトは MBProgressHUD です。

これは、別のビューにオーバーレイされるビューであるヘッドアップ ディスプレイを指し、通常はアクティビティ インジケーターを表示したり、UI と対話する手段を提供したりします。HUD の良い例は、組み込みのムービー プレーヤーでムービーを再生する場合です。画面をタップすると、ムービー プレーヤーのディスプレイに一連のコントロールが表示されます。MBProgressHUD に関連するもう 1 つの一般的な例は、既存のビューの上に進行状況インジケーターを表示することです。たとえば、リモート サービスにアクセスするときに、ユーザーにフィードバックを提供するために、「お待ちください」メッセージを表示することを選択できます。

ソースコードはこちらからダウンロードできます。

于 2012-08-22T10:22:27.447 に答える
0

[[UIApplication sharedApplication] beginIgnoringInteractionEvents] を使用して、サーバーにリクエストを送信し、読み込みビューを表示します。応答呼び出し [[UIApplication sharedApplication] endIgnoringInteractionEvents] を受信し、読み込みビューを削除します。

于 2012-08-23T17:40:37.547 に答える