2016-03-30 10 views
0

このクラスを使用して、UIImageViewにgif urlをロードしようとしています。 問題は、いくつかのURLの場合、ロードに10秒かかり、それ以外の2秒です。 私はほとんど何も試しましたが、それでもプロセスは遅すぎます。 1秒は良いだろうが、私はそこに着くことは決してなかった。 私はまた、独自の問題を抱えていたUIWebviewを試しました。ここで GIFでUIImage + animtedGifクラスを使用する

はコードです:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { 

      let fileUrl = NSURL(string:"http://45.media.tumblr.com/6785bae27b8f888fe825f0ade95796a3/tumblr_noenkbeTSw1qjmwryo1_500.gif") 
      let gif = UIImage.animatedImageWithAnimatedGIFURL(fileUrl!) 

      dispatch_async(dispatch_get_main_queue()) { 

       self.player.image = gif 
      } 
     } 

答えて

1

私が見てきましたGIF読み取りツールのほとんどの問題点は、ロード時にすべてのデータを読み取ることを、彼らは、復号のすべてにメモリを割り当てることです圧縮されていないすべてのデータを同時にメモリに保持します。これにより、ランタイムパフォーマンスの問題が発生し、アプリケーションや大規模なGIFのデバイスがクラッシュする可能性があります。ローディング時間の問題では、データをダウンロードして読み込む必要があるため、できることはほとんどありません。また、ネットワークキャッシュが、同じGIFを何度も何度も繰り返して処理することを想定しています。これは、ネットワークに再度アクセスすることなく、うまく機能しない場合があります。これらの問題に対処するソリューションについては、this SO Questionを参照するか、またはフリップボードソリューションhereをご覧ください。

+0

あなたの最初のリンクは私には何の意味もありません。私はすでに読んでいますが、Flipboardは理論を見せたいと思っていますが、私は本当に知っていません。それ。 iOSでこのようなシンプルなファイルを再生するということは、ほとんど不可能です。その単なる一連の画像、ムービーの読み込みは10倍高速で簡単です。私は本当にアップルと一緒にこのGIFを得ることはありません。 – Curnelious

+0

アニメーションデータの読み込みは、見た目よりもはるかに困難です。あらゆる種類のランタイムパフォーマンスとメモリ管理の問題があり、それを正しいものにすることは、単に「何かをする」ことよりも約10倍困難です。私はあなたがリンクについて何を意味するかわからない、私はAVAnimatorとiOS用の難しいGIF89aの読み込みの詳細を実装するFLAnimatedImageパッケージへのリンクを提供した。 – MoDJ

+0

さて、フリップボードのソリューションに行く、ありがとう。 Flipboardソリューションでも – Curnelious

関連する問題