答えて
あなたはそれを停止するときに、スピナー
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
とendIgnoringInteractionEvents
を起動するときは、beginIgnoringInteractionEvents
を呼び出すことができます。
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
ちょうどそうあなたのアプリケーションがフリーズします(ユーザの観点から)、あなたのコード
は常にあなたは
endIgnoringInteractionEvents
を呼び出すポイントになることを確認してください。
ありがとう、うまくいきます。しかし、私が見ることができるように、ビューはendIgnoreInteractionsEventの後にタッチを覚えてイベントを発生させます。この動作を変更できますか? – mica
@mica:うわー、これは興味深い観察です。これまで気づいたことはありません。私は見てみましょう。もしあなたが急いでいるなら、アプリケーションのメインウインドウの 'sendEvent:'をハイジャックすることができます。スピンナーがアニメーション化しているかどうかをチェックすることで、レスポンダチェーンをダウンしたり、無視したりすることができます。 このウィンドウをハイジャックする1つの方法は、[ここ](http://stackoverflow.com/questions/9251174/detect-if-the-user-has-touched-the-screen/9293321#9293321)です( 'MyKindOfWindow '定義)。 –
@mica:あなたがバグを見つけたようです。 [ドキュメンテーション](https://developer.apple.com/library/ios/#DOCUMENTATION/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html)によると、これは起こらないはずです:「あなたのタッチイベントの配信をオフにするアプリケーションは、UIApplicationメソッドのbeginIgnoringInteractionEventsメソッドを呼び出して、endIgnoringInteractionEventsメソッドを呼び出すことができます。最初のメソッドは、アプリケーションがタッチイベントを完全に受信するのを停止し、2番目のメソッドが呼び出されて、そのようなイベントの受信を再開します。 –
ロクハルクの回答にちょうど追加。 ここでは、アプリを存続させるウォッチドッグの例を示します。 常に10秒程度の重要な間隔で電話をかけることができます。 10秒以内に有効にする必要がある場合は、 "enable"メソッドを呼び出してください。スウィフト3.0で
UIWindow * __weak mainWindow;
- (void)disableGlobalUserInteractionForTimeInterval:(NSTimeInterval)interval
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
mainWindow = [[[UIApplication sharedApplication] windows] lastObject];
});
[mainWindow setUserInteractionEnabled:false];
if (interval > 0)
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(interval * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self enableGlobalUserInteraction];
});
}
}
- (void)enableGlobalUserInteraction
{
if (mainWindow)
{
[mainWindow setUserInteractionEnabled:true];
}
}
:、
UIApplication.shared.endIgnoringInteractionEvents()
- 1. UIActivityIndicatorViewが回転していません
- 2. UITableViewCellのUIActivityIndicatorViewは回転を停止しません
- 3. UIActivityIndicatorView
- 4. ループ入力中に無効な入力
- 5. iPhoneのUIActivityIndicatorViewに関する問題
- 6. UIActivityIndicatorView問題
- 7. UIActivityIndicatorView animation
- 8. UIActivityIndicatorView freeze
- 9. UIActivityIndicatorViewが
- 10. UIActivityIndicatorView in cocos2d
- 11. UIActivityIndicatorViewテーブルビュー間
- 12. ViewController間のUIActivityIndicatorView
- 13. 回転を無効にする
- 14. データのロード中にUIActivityIndicatorViewを表示できない
- 15. UIRctreshControl UIActivityIndicatorViewの色を変更する
- 16. カスタムセグを使用するとUIActivityIndicatorViewフリーズ
- 17. UIActivityIndicatorViewアニメーションの問題
- 18. を無効に自動回転と中央
- 19. 移行中にピボットの入力を無効にしますか?
- 20. UIActivityIndicatorViewが機能しません(Facebookのアクセス許可がUIActivityIndicatorViewに影響する)
- 21. ビューが回転する前にボタンを無効にする
- 22. UITableViewの可視領域にUILabelとUIActivityIndicatorViewの中心を合わせる
- 23. Dojo divコンテナ内のすべての入力フィールドを無効にする
- 24. 入力を無効に設定する
- 25. UIActivityIndicatorView nillifyでクラッシュします
- 26. 私のウィジェットの回転を無効にする
- 27. UIViewを回転する。回転中のクリッピングを防ぐには?
- 28. 入力を無効にします
- 29. iOS - UITableViewセクションヘッダー内のUILabel + UIActivityIndicatorView
- 30. 無効な入力ボタンをすべて選択しない
あなたがUIAlertViewにスピナーを追加し、警告を表示する場合:
が相互作用を復元するには:
は、相互作用を無効にするにはそれはあなたが何をしているかを達成するでしょう。 – Luke
あなたは[MBProgressHUD](https://github.com/matej/MBProgressHUD)でも素晴らしい効果を得ることができますが、達成しようとしていることに応じてより重くなるかもしれません。 – FluffulousChimp
ありがとうルーク、もし私がそれを消滅させたいのであれば、私はUIAlertViewを "破壊"しますか? 0のボタンを持っても構いませんか? – mica