私は、アクティビティインジケータを使用して、ユーザへの進行中のネットワークコールを示しています。しかし、ネットワークコールが完了したら、stopAnimatingを呼び出してアクティビティインジケータを停止します。しかし、アクチベータ・インジケータが消える前に、1〜3秒間スクリーンに留まります。アクティビティインジケータがアニメーションを停止するのに時間がかかります
PS:アクチベータインジケータメソッドを呼び出す人は誰もいません。
私は、アクティビティインジケータを使用して、ユーザへの進行中のネットワークコールを示しています。しかし、ネットワークコールが完了したら、stopAnimatingを呼び出してアクティビティインジケータを停止します。しかし、アクチベータ・インジケータが消える前に、1〜3秒間スクリーンに留まります。アクティビティインジケータがアニメーションを停止するのに時間がかかります
PS:アクチベータインジケータメソッドを呼び出す人は誰もいません。
上記のコメントに基づいて、問題が見つかりました。 stopAnimating()
がバックグラウンドスレッドから呼び出されていて、プロセッサ上ですぐに実行されませんでした。この問題を解決するために、次のコードを使用してメインスレッドにstopAnimating()
を送りました。
提案された解決策が間違っているために下降しています。これを含むクラスは 'UIView'のサブクラスです。 UIクラスにスレッディングコードを入れるのは悪い設計です。実際の問題は、クライアントのUIに背景から触れていたことでした。 –
私はあなたのコメントに同意し、あなたの入力に基づいてコードを更新しました。 – 2ank3th
アクティビティインジケータを停止するコードを共有してください –
stopAnimatingを呼び出すのではなく、単にアクティビティインジケータを非表示にすることはできませんか? –
また、hidesWhenStoppedを設定しましたか? –