2012-03-29 7 views
3

私はtableViewを持っています。各tableViewCellに複数のサブビューを持つ代わりに、drawRectメソッドの他のサブビューをそれぞれ描画する1つのメインサブビューを追加しました。 (これはスクロールアニメーションの見栄えが良いと読んでいます。また、appleにはサンプルプロジェクトのCustomTableViewCellがあります)。方向変更時にdrawRectを使用する

まず、デバイスの向きを変更してから、drawRectが自動的に呼び出されないという問題があります。そして、各tableviewcellは伸びているようです。 私は、これは問題を解決

mainView.contentMode = UIViewContentModeRedraw 

を使用してこれを解決しました。方向の変更が完了すると、drawRectが自動的に呼び出されます。

しかし、向きを変更している間も、回転ビューのアニメーションでは、各テーブルビューのセルが引き伸ばされたままです。それは非常に小さなものですが、それでもなお目立っています。誰もがこの?????に何かを提案することができますか?

答えて

0

アニメーション中は再描画できません(とにかく簡単ではありません)。

テーブルセルを再度コンポーネントに分割し、自動サイズ設定を正しく設定します。アニメーションはコンポーネントの位置のみをアニメートし、上手く見えます。

drawRect:はどこでスクロールアニメーションを改善しましたか?スクロールアニメーションにいくつか問題がありましたか?

編集: IMHOアニメーションのサイズ変更を修正してパフォーマンスを向上させる方法はありませんが、サブビューではなくdrawRect:を使用しないでください。

+0

http://stackoverflow.com/questions/7581482/atebits-twitter-fast-scrolling –

+0

なぜ再描画が速くなるのか理解していますが、レイヤの合成はスキップされますが、いくつかの欠陥があります。あなたはそれらを見つけました。問題は、本当にこれを行う必要があるということです。あなたのスクロールアニメーションは遅かったですか?早すぎる最適化の典型的なケースではありませんか? – Sulthan

+0

ええ!それは私が最適化したいものです。 10000行のテーブルを持ち、スクロールを良くすると、私が特定したストレッチの問題が改善されます。私はちょっとでもそれを解決できるかどうか試してみたいです。 –

関連する問題