2017-06-13 10 views
0

SDWebImageのsd_setImageの完了ブロックのスレッドは何ですか?SDWebImageのsd_setImageのスレッド

完了ブロックからUIを変更した場合、そのコードをいつもDispatchQueue.main.async() {}にラップする必要がありますか?

+0

それはメインスレッド – dan

+0

にそれを呼び出すには、[OK]を...私は 'DispatchQueue.main.async内補完ブロック内のコードをラップすることにより、非常に奇妙な行動を一度固定誓います() 'を返します。奇妙な行動の原因は何か他のものだったかもしれない。基本的に私は結果のイメージを取ってマスクを適用し、 'UIImageView'に再度設定しました。 – Jonny

答えて

0

DispatchQueue.main.async() {}を使用する必要はなく、完了ブロックは常にメインスレッドで呼び出されます。 sd_setImage方法の部分のソースコード: enter image description here

+0

これは技術的に正しいと思われます。しかし、私は 'DispatchQueue.main.async(){'の中で自分のコードを呼び出す必要がありましたが、問題/原因は異なっていましたが、DispatchQueue.main.async()によって実際に解決されました。私はCALayerマスクを使用して画像の角を丸めていたが、丸められた画像のサイズは正しくない。私はUICollectionViewの中にイメージを持っており、いくつかの自動レイアウトの問題やその他のサイズの問題は、完成したハンドラでイメージビューのサイズを完全には設定していない可能性があります。 – Jonny

+0

奇妙な音。おそらく、あなたのUI操作は 'async()'メソッドを呼び出すことによって待ち行列タスクに入る必要があります。 –

関連する問題