2016-05-13 2 views
2

私はUIProgressViewを持っています。これは、ユーザーにファイルのダウンロードの進行状況を示すために使用されます。ダウンロード要求はバックグラウンドスレッドで行われ、進捗ブロックでは、UIProgressView進捗値の更新がメインスレッドで呼び出されます。UIProgressView更新の遅れ

これは約40%までうまく動作しますが、ハングアップしてすぐに約100%で表示され、カスタムアラートが閉じます(必要な場合)。私は複数回試しましたが、100%にスムーズに更新することはできません。

私はキャンセルボタンも持っていますが、それはその40%〜100%の範囲のタップに反応しないことに気付きました。だから、どういうわけか、メインスレッドはブロックされます。 0%〜40%の範囲でキャンセルボタンが完全に機能するためです。私はファイルのダウンロードでメインスレッドをブロックしないこと、そしてUIProgressViewアップデートがメインスレッドで行われていることを確信しています。

何が問題なのですか?

答えて

2

私はついにその理由を理解しました。それは私がNSLogの呼び出しを非常に多く呼ばれた進行ブロックで持っていたためです。

私はまだそれがなぜこれをしたのか、そしてなぜ約40%で絶えず理解しているのですか?それでも、それをプロダクションに持ち込むのは良い考えではないと思います。