3

私のアプリには、カスタムUITableViewCellsを含むUITableViewがあります。スクロールは非常に遅くて遅れているので、これを解決する必要があります。

各セルには、5〜6個のラベル、いくつかのボタン、および画像が含まれています。

ボタン、ラベル、画像ビューを配置するセルのxibがありますが、すべての画像をcellForRowAtIndexPathに設定しています。画像をロードするには、[UIImage imageNamed:@ ""]を使用します。これは、最適化に適しています。私はまた、細胞を再利用しています。

また、コメントアウトして画像を設定しなくても、ラベルだけがテキストで設定されているため、テーブルが遅くなっていることもわかりました。

優れたスムーズなパフォーマンスを維持しながら、かなり複雑なテーブルセルを作成する方法について誰か提案がありますか?カスタムセルをxibとして使用すると、パフォーマンスが低下しますか?

4

3 に答える 3

10
  1. 本当にセルを再利用していることを確認してください。UITableViewCell 使用しているセル識別子がインターフェイス ビルダーの XIB に設定されていることを確認します。

  2. サブビューの透明度を下げます。可能であれば、ラベルを調べて、その背景がセルの背景と一致していることを確認してください。

  3. 最適化されていないコードをチェックします。たとえば、書式設定された日付を表示していて、呼び出されるNSDateFormatterたびにインスタンスを作成している場合tableview:cellForRowAtIndexPath:、これは実際にアプリの動作を遅くします。

  4. Timing および Core Animation モジュールで Instruments を使用して、多くの時間が費やされている場所を見つけます。最終的に、これらは真のパフォーマンスの問題がどこにあるのかを明らかにすることができます。

于 2012-02-29T14:58:57.283 に答える
4

UITableViewCellカスタムサブクラスを実装しdrawRect:、1 つの opaqueで独自の描画を行いますUIView

そのようにすると、スクロールが大幅に高速化されます。

于 2012-02-29T14:56:55.653 に答える
2

IBで、いくつかのプロパティをNOに設定します。

スクローラーで、「水平スクロール」を「いいえ」に設定します。タッチで、「コンテンツタッチの遅延」と「キャンセル可能なコンテンツタッチ」をNOに設定します

テーブルビューをスムーズにスクロールできるようになります

于 2012-02-29T15:32:38.343 に答える