問題タブ [haneke]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1499 参照

swift - Swift - UITableView - 速くスクロールすると正しくない画像が読み込まれる

Haneke ライブラリを使用して、画像のダウンロード、読み込み、キャッシュを行っています。これはうまく機能しますが、スクロールが速すぎる場合、正しくない画像が読み込まれたり、画像がまったく読み込まれない場合があります。

バックグラウンドでダウンロードできるよりも速くスクロールしているため、キュー内の次の画像が間違ったセルに読み込まれる可能性があります。

これは、ネットワーク経由でキャッシュから画像をリクエストするためのコードです。

また、カスタム セルの Swift ファイルでは、セルが画面から外れているときに要求を停止する次のメソッドに入れることができるものはありますか?

私は何週間もこれを理解しようとしてきました。この問題を解決するために使用するより良いライブラリを誰かが持っている場合は、お知らせください。

0 投票する
0 に答える
131 参照

ios - Swift - 画像ダウンロードの問題

おはようございます !

写真のダウンロードと制約に関する設計上の質問があります。

現在、Haneke を使用してバックグラウンドで画像をダウンロードしています。それは魅力のように機能していますが、私が持つことができるさまざまな画像サイズ形式がたくさんあります (一度に 1 つの画像を表示します)。

だから私の問題は、さまざまなサイズに対応するために、比率に応じて画像を微調整することです。それは非常にうまくいっています:

プロトタイプ セルを使用してコンテンツを表示します。そのコードが完成したら、新しいレイアウトを適用/更新するためにカバー画像セルをリロードします。ここまでは順調ですね !!

しかし、私の問題は、画像がまったく見栄えが悪く、サイズが変更されている場合です。新しい制約が適用されるまでに少し時間がかかります。これにより、奇妙な/見栄えの悪いUIが発生することがわかります。 :=/

私が使用している他の方法は、単に画像を同期的にロードすることです:

しかし、明らかに、パフォーマンス上の理由/スクロールの問題からそれを避けたいと思います(キャッシュされていないため、スクロールバックすると画像が再度ダウンロードされます)。

最善のアプローチは何ですか?

ありがとうございました !

0 投票する
1 に答える
65 参照

ios - テーブルビューセルに複数のUIImageViewを読み込んでキャッシュしない

3 つの UIImageView を持つカスタム テーブル ビュー セルがあります。Hanekeを使用して非同期でロードおよびキャッシュします。上にスクロールすると、以前に見た画像の一部がランダムに消えます。これは本当に奇妙です。なぜこうなった ?

SDWebImage も試しましたが、問題は解決しません。

setUserProfileImage では、Haneke を使用て画像を読み込み、キャッシュします。

カスタム テーブル ビュー セル:

私のテーブルビューコントローラ:

0 投票する
4 に答える
1759 参照

swift - Swift: ビューが表示される前に非同期呼び出しから値を取得する

HanekeSwift を使用してキャッシュされたデータを取得し、ビューが表示されるたびに swipeView のラベルに設定しています。私のコードは問題なくデータを取得しますが、cache.fetch()非同期であるため、メソッドを呼び出してビューを更新すると、ラベルが に設定されnilます。ビューをロードする前に、キャッシュされたデータが取得されるまで待つようにswiftに指示する方法はありますか?

以下のコードを参照してください。

上記のコードをステップ実行すると、常にビューが表示されてからキャッシュ ブロックにステップ インします。viewWillAppear() で updateEntries() を完了させ、キャッシュ ブロックが実行されるまでそこから戻らないようにするにはどうすればよいですか? 事前にたくさんありがとう!

更新 1:

以下のソリューションはかなりうまく機能しており、呼び出しは正しい順序で行われます (notify ブロックの print ステートメントはキャッシュの取得後に実行されます) が、ビューはサーバーが呼び出されたときにラベルを非 nil 値で更新するだけです。たぶん、通知グループに間違ったコードをまとめているのでしょうか?

更新 2:

また、ビューを切り替えると、コンソールにこの警告が表示されます。上記のコードでメインスレッドをロックしていると思います

「このアプリケーションは、バックグラウンド スレッドから自動レイアウト エンジンを変更しています。これにより、エンジンの破損や異常なクラッシュが発生する可能性があります。これは、将来のリリースで例外が発生する可能性があります。」

0 投票する
0 に答える
103 参照

swift - Haneke(Swift) のキャッシュ画像の順序が乱れている

動的にロードされ、ユーザーが同じカテゴリに属する​​さまざまなサービスから選択できるようにする 3 行の六角形を持つメニュー インターフェイスを開発しました。次に、API エンドポイントを呼び出して、関連データを含む JSON 応答を取得しましたが、これも正常に機能しています。

問題: メニューを初めて開いたとき (つまり、メニューが動的に作成されたとき) に、画像が間違った順序で表示されます。別のビューを呼び出してから同じメニューに戻ると、すべてが正しく表示されます。もちろん、この動作は非常に厄介ですが、これまでのところ、これを解決するための私の努力はうまくいきませんでした.

ここでは、六角形の最初の行に使用するコードを示します (2 番目と 3 番目は、この後に同様に順番に呼び出されます。

どんな助けでも大歓迎です!サルデーニャからどうもありがとう!