私のテーブルビューでは、多くのサブビューを持つカスタム セル、2 つの egoimageviews (URL を取得して Web から画像を取得し、後で使用するためにキャッシュする imageview のサブクラス)、リンク検出がオンになっているテキストビューを使用しています。 4 つのラベル、およびボタン。egoimageview と textview にタップ ジェスチャを追加しました。テキストビューの高さは、保持するテキストのサイズに従って計算されます。高さの計算は事前に十分に行われるため、ユーザーがスクロールしている間にその場で高さを計算しても、スクロールのパフォーマンスが影響を受けることはありません。このデータはすべて Web から取得され、テキストの高さとセルの高さが計算され、配列に格納されてから、tableview がサブビューとして追加されます。一部のセルでは、表示する画像がありません。そのような場合、フレームを cgrectzero に設定した後、自分の egoimageview を非表示にします。画像は iPhone の画面で約 170 px X 100 px を占め、それぞれ約 250 KB です。スクロールすると、スクロールがかなりぎくしゃくします。スロースクロールセルについて少し調査しましたが、これまでに次のことを実装しましたが、パフォーマンスが大幅に向上することはありませんでした:
- 高さは、heightforrow メソッドではなく、事前に十分に計算されます。
- セルの背景とそのサブビューの背景は不透明です。
- データ レイアウトは 2 つの方法で表示する必要があるため、2 つの類似した種類のカスタム セル クラスがありますが、いくつかの違いがあります。そのため、内容に応じて、返されるセル タイプが決定されますが、90% の場合のみです。最初の種類が使用されます。
私はこのぎくしゃくしたスクロールに本当に満足しておらず、複雑なレイアウトにもかかわらずバターをスムーズにスクロールできるようにウェブを探していましたが、これまでのところ何も役に立ちませんでした. 助けてください!