cellForRowAtIndexPathメソッドでdequeueReusableCellWithIdentifierを使用しないと、何が起きているのだろうかと思います。 1つのプロジェクトで私は共同作業をしていますが、すべて異なるUITableViewCellsを1つのテーブルビューに表示します。ここでは、表示する必要があるすべてのTableCellで配列を塗りつぶします。これらの配列はそれほど大きくはありません(10〜15セル)ので、dequeueReusableCellWithIdentifierの識別子を使用しなくても動作します。次の質問は、識別子respをどのように使用できるかです。 dequeueReusableCellWithIdentifierは、UITableViewの1つのセクションで異なるセルを使用する場合に使用します。ここに誰かが説明することができます、正確に何がバックグラウンドで起こるか?よろしくNilsUITableViewはdequeueReusableCellWithIdentifierを使用しているかどうかを確認します。
1
A
答えて
4
dequeueReusableCellWithIdentifier
は私にFlyweight patternを思い出させるものです。
セルの割り当てとインスタンス化は高価なタスクになる可能性があるため、このメカニズムを使用すると、最初に表示されたセルのみを作成し、その後、内容を変更するだけで再利用できます。スクロールアニメーションは、ユーザーに良い経験を与えるためにできるだけ速くなければなりません。
その価値はありますか?はい、それは基本的に無料で、我々はちょうどいくつかの古いデータがまだ新しい視覚化に存在することができる注意を払う必要があります、トリックは常に-prepareForReuse()
メソッドを実装することです、ここで、新しいもの
同じセクション内の異なるセルを使用する場合は、高さが異なる場合でも絶対に可能です。あなたはちょうど各セルのために1つと、あなたのデータと一緒に何とかそれらを結びつけて、別のセル識別子を梱包する必要があります。
私は通常、struct(swift)または辞書に表示するデータを、使用するセル識別子のキーとともにマップします。
スクロール中に自分のタイプのセルが自分自身を表現している場合は、dequeue
である必要があります。
関連する問題
- 1. ポートが使用されているかどうかを確認しますか?
- 2. ブラウザがどのフォントを使用していてCSSを使用しているかを確認しますか?
- 3. UITableViewセルのウィック部分をタップしたかどうかを確認します
- 4. マイクロフォーマットを使用しているかどうかを確認する方法
- 5. 関数が@classmethodを使用しているかどうかを確認する
- 6. ユーザーが既にAuth.GoogleSignInApiを使用してログインしているかどうかを確認しますか?
- 7. OAUTHを使用してYouTube認証が機能しているかどうかを確認する方法
- 8. itextsharpを使用して署名フィールドに署名しているかどうかを確認します
- 9. UITableView dequeueReusableCellWithIdentifierが一意であるかどうか
- 10. flock()を使用してファイルが既にロックされているかどうかを確認しますか?
- 11. PHPを使用してYouTube動画が削除されているかどうかを確認しますか?
- 12. hashchangeを使用したWebサイト - popstateイベントが利用可能かどうかを確認していますか?
- 13. ファイルがJavaを使用してストリームを開いているかどうかを確認するには
- 14. SPARQLクエリを使用してプロパティが機能しているかどうかを確認してください
- 15. libmemcached - 接続しているかどうかを確認する
- 16. powershellを使用してポートが使用されているかどうかを確認する方法
- 17. PHPを使用してドロップダウンリストから値を選択するかどうかを確認してください
- 18. ダーティチェックが使用されているかどうかを確認するには?
- 19. QWidgetがレイアウトに属しているかどうかを確認しますか?
- 20. Authorize.Netがアップ/ダウンしているかどうかを確認しますか?
- 21. ユーザーがAndroidでタブレットまたは電話を使用しているかどうかを確認する方法
- 22. サーバーがRED5またはFMSを使用しているかどうかを確認する方法?
- 23. モバイルがWIFIまたはデータ/ 3Gを使用しているかどうかを確認する
- 24. ExternalInterface.availableを使用して、JavaScriptが有効になっているかどうかを確認できますか?
- 25. 誰かがNginx、Apache、Lighttpdを使用しているかどうかを確認してください
- 26. jQueryを使用して、テキストがhtmlの特殊文字と等しいかどうかを確認します。
- 27. image.completeを使用して、画像がクロムにキャッシュされているかどうかを確認しますか?私は外部の画像がJSとブラウザにキャッシュされているかどうかを確認しようとしている
- 28. カウンターがセレンを使用して増加しているかどうかを確認する方法
- 29. ストアが開いているかどうかを確認しますか?
- 30. ネットワークドライブがタイムアウトしているかどうかを確認します。#
バックグラウンドではどうなりますか?あなたはテーブルビューのセルキャッシュをかなり簡単に分解することができますが、デキューの仕組みや識別子の使い方とは無関係のようです。 – Wain
「再利用」はすべてです。それがそのメソッド名のインポート部分です。これは、毎回新しいセルを再割り当てするのではなく、画面外だったセルを再利用することを可能にする。言い換えれば:CPU、メモリ(キャッシュシステム)などを節約する – Larme
それは正しいWainです。我々は、一つのセクションに異なったカスタムセルがどのようにあるのかを知りませんので、上記のケースでは識別子を使用しません。何か提案はありますか? –