テーブルビューセルに進行状況インジケーターがあり、ユーザーがテーブルビューを操作している間は進行状況が更新されません。インタラクションが停止すると、インジケーターは本来あるべき場所にジャンプします。
ユーザーがテーブルビューをスクロールしている場合でもアニメーションを続行できるように、これをどのように回避できますか?
それらをランループに追加できますか?インタラクションとアニメーションの両方をメインスレッドで実行する必要がある場合、どのような回避策を実行できますか?
テーブルビューセルに進行状況インジケーターがあり、ユーザーがテーブルビューを操作している間は進行状況が更新されません。インタラクションが停止すると、インジケーターは本来あるべき場所にジャンプします。
ユーザーがテーブルビューをスクロールしている場合でもアニメーションを続行できるように、これをどのように回避できますか?
それらをランループに追加できますか?インタラクションとアニメーションの両方をメインスレッドで実行する必要がある場合、どのような回避策を実行できますか?
まず、これらの進行状況インジケーターを本当に更新する必要があることを確認する必要があります-UIScrollView
スクロール時の型クラスのデフォルトの動作は、応答性を維持するために、その中のUI更新を一時停止することです。特に古いデバイスでは、何か特別なことをしようとすると、スクロール速度が驚くほど速く低下する可能性があることがわかりました。
警告はさておき、これをどのように行うのですか?この質問には解決策があるようです。簡単な要約は次のとおりです。
NSTimer
進行状況インジケーターの更新をトリガーし、そのタイマーを実行してNSRunLoopCommonModes
、スクロール中にも起動するようにします。それでおしまい。UIView
スクロール中は更新は問題ではなく、更新をトリガーするコードを実行することは問題です。「スクロールプルーフ」のタイマーを使用すると、インジケーターが正常に更新されます。リンクされた質問にはいくつかの良いサンプルコードがありますので、クリックして読んでください!