アプリが起動すると、1秒間UIをフリーズして、前提条件サービス(たとえば、ロケーションサービス)を初期化する必要があります。それを行う方法はありますか?起動時にUIをフリーズする方法はありますか?
2
A
答えて
3
透明なUIViewを画面全体に置き、すべてのタッチイベントをインターセプトします。
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
return YES;
}
を:通常、そのメソッドの内部で、あなたがそれにスーパーを呼び出すと思いますが、この場合には、あなただけのYES戻ってくるだけでのUIViewのサブクラスを作成し、
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;
をオーバーライドし、タッチイベントをインターセプトする
あなたが本当に気に入っているのであれば、shouldInterceptTouchesというUIViewサブクラスに合成プロパティを追加して、次のようにします:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
return shouldInterceptTouches ? YES : [super pointInside:point withEvent:event];
}
透明なビューが他のビューよりも上にあるように注意してください。
サイドノート:Appleのヒューマンインタフェースガイドラインは、そういったことをしているときには好きではありません。あなたのアプリが反応しない場合、ユーザーは混乱し、失望し、アプリがフリーズしていると思えば、アプリを終了させる可能性があります。何らかのUIActivityIndicatorViewを表示し、絶対に必要なボタンだけを無効にする方が良いでしょう。 Appleはあなたがそのようなことをバックグラウンドで行い、ユーザーが他のことをやり遂げることができるようにしたら、それが好きです。
-1
ロケーションサービスが終了するまでモーダルビューを使用するか、すべてのコンポーネントを無効にすることができます。
これは、OSまたはフレームワークではなく、アプリケーションの責任です。
関連する問題
- 1. 起動時にAndroidエミュレータがフリーズする
- 2. Visual Studioがフリーズしたり、起動時にハングする
- 3. C#Windowsフォームアプリケーションの起動時に何が起こっているかを知る方法はありますか
- 4. 起動時にJavaアプリケーションを自動的にアップグレードする方法はありますか?
- 5. サーバーのデプロイ時にQuartzを起動する方法がありません
- 6. スレッドを停止し、UIイベントを処理させ、スレッドを「再起動」する方法はありますか?
- 7. 起動時にTomcat 6がフリーズします
- 8. すべてのUI要素を初期値で起動させるスマートな方法はありますか?
- 9. 起動スクリプトをローカルグループポリシーにプログラムで追加する方法はありますか?
- 10. On * nixには、将来の日付と時刻にプロセスを起動する方法がありますか?
- 11. Google Chromeの起動時にツールバーを無効にする方法はありますか?
- 12. apache karafで起動時にバンドルを起動する方法
- 13. iPhone起動時にアプリケーションを起動する方法
- 14. 起動時にサービス( `IServiceCollection`)を起動する方法
- 15. 起動時に予定されたアクティビティを開始する推奨される方法はありますか?
- 16. excel起動時にすべてのRTDコールをプールする方法はありますか?
- 17. 起動時にRoRアプリケーション内のすべてのユーザーセッションを消去する方法はありますか?
- 18. divをjqueryアプリケーションにロック(フリーズ)する方法はありますか?
- 19. Android Appが2回目の起動時にフリーズする
- 20. 起動時にiPad Web Appがフリーズする
- 21. 最初の起動時にアプリがフリーズする
- 22. emacsの起動時にカスタムのinitファイルを指定する方法はありますか?
- 23. 起動時にSpring Webサービスの接続エラーを処理する方法はありますか?
- 24. UIテストでSFSafariViewControllerを自動化する方法はありますか?
- 25. iOSでui要素を移動する方法はありますか?
- 26. Android 2.2:起動時に自動的に起動する方法と、別のアプリを起動させる方法
- 27. 起動時にエラスティックIPアドレスをEC2インスタンスに関連付ける方法はありますか?
- 28. 起動時にChromeを起動する代わりにfirefoxを起動する
- 29. GWTベースアプリケーションのサーバー再起動をインターセプトする方法はありますか?
- 30. Visual StudioでFSIを再起動する方法はありますか?
これは非常に良い解決策のようです。すべてのタッチイベントを傍受する方法 - exclusiveTouch(YES)とsetUserInteractionEnabled(NO)は十分に良いでしょうか?私は2つの設定を使用しましたが、透明なビューでスワイプで以下のビューが動きます。 – tom
詳細を追加するために投稿を編集しました。 –
ありがとう@ジャック!今私の意見が他の意見よりも上にあることを確認する方法が問題になります。 addSubViewはそれを保証しないでしょうか? – tom