iPhone 開発 - アプリケーションとのユーザー操作を制限し、進行状況インジケーターを表示します。
-
22-07-2019 - |
質問
サーバーから情報を取得する場合があります。私のアプリケーションにはタブ バーとナビゲーション ボタンの両方があります。サーバーからデータが取得されている間、ユーザーがジャンプできないように、アプリケーションに進行状況インジケーターを表示し、他のすべてのコントロールを無効にしたいと考えています。どうすればこれを達成できますか?
私が念頭に置いているアプローチの 1 つは、進行状況ウィンドウ (メッセージ アラート ウィンドウとよく似ており、ユーザーはメッセージ アラート ウィンドウのみを操作できる) を備えた透明なビューを表示することです。このアプローチを実装するには助けが必要です。
現在、情報/データがサーバーから取得されているときに、サブビューに UIActivityView を追加し、アニメーション化を開始します。ただし、これはユーザーがアプリケーションの他の部分に移動することを制限するものではありません。
解決
Stephan は、UIProgressView または UIActivityIndicatorView とともに UIAlertView を使用することを提案しました。この解決策は私にとってはうまくいきましたが、iPhone 開発者コミュニティの他のメンバーと議論したように、このアプローチはお勧めできません。
推奨されるアプローチは、新しいビューを使用してその透明度の値をアルファ 7 または 8 に設定し、背景を黒に設定し、このビューに UIProgressView または UIActivityIndicatorView を追加し、この新しいビューを使用して進行状況を表示することです。このテクニックの使用にはハッキングは含まれません。一方、UIActivityIndicatorView を UIAlertView に追加する場合、実際には文書化されていない操作が実行されます (これは推奨されません)。
ありがとう。
他のヒント
ボタンのない UIAlertView を作成するだけで、ユーザーの操作が妨げられます。
必要に応じて、UIProgressView または UIActivityIndicatorView をアラートに追加できます。