答えて
あなたはそれを停止するときに、スピナー
[[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. UIActivityIndicatorViewは常に
- 5. UIActivityIndicatorViewコアデータバックグラウンドコンテキストフェッチ
- 6. UIActivityIndicatorViewが
- 7. UIActivityIndicatorView freeze
- 8. UIActivityIndicatorViewテーブルビュー間
- 9. swift UIActivityIndicatorView advice
- 10. UIActivityIndicatorView問題
- 11. UIActivityIndicatorView animation
- 12. UIActivityIndicatorView in cocos2d
- 13. iPhoneのUIActivityIndicatorViewに関する問題
- 14. ViewController間のUIActivityIndicatorView
- 15. ループ入力中に無効な入力
- 16. UIRctreshControl UIActivityIndicatorViewの色を変更する
- 17. データのロード中にUIActivityIndicatorViewを表示できない
- 18. 回転を無効にする
- 19. UIActivityIndicatorViewダイアログボックスの表示
- 20. UIActivityIndicatorViewアニメーションの問題
- 21. カスタムセグを使用するとUIActivityIndicatorViewフリーズ
- 22. すべての入力要素を無効にする
- 23. UIActivityIndicatorViewが機能しません(Facebookのアクセス許可がUIActivityIndicatorViewに影響する)
- 24. 代理人とUIActivityIndicatorViewエラー
- 25. テーブルビューではなくウィンドウ内のUITableViewControllerのUIActivityIndicatorViewを中心にします。
- 26. UIActivityIndicatorView:どのように動作するのですか?
- 27. UITableViewの可視領域にUILabelとUIActivityIndicatorViewの中心を合わせる
- 28. を無効に自動回転と中央
- 29. UIActivityIndicatorView nillifyでクラッシュします
- 30. UIActivityIndicatorViewがCollectionViewフッターで消えます
あなたがUIAlertViewにスピナーを追加し、警告を表示する場合:
が相互作用を復元するには:
は、相互作用を無効にするにはそれはあなたが何をしているかを達成するでしょう。 – Luke
あなたは[MBProgressHUD](https://github.com/matej/MBProgressHUD)でも素晴らしい効果を得ることができますが、達成しようとしていることに応じてより重くなるかもしれません。 – FluffulousChimp
ありがとうルーク、もし私がそれを消滅させたいのであれば、私はUIAlertViewを "破壊"しますか? 0のボタンを持っても構いませんか? – mica