2012-01-15 10 views
1

UITableViewCellをサブクラス化して完全なカスタムセルを定義するときに、どのスタイルを設定するのですか? UITableViewCellStyleDefault?実際にはラベルやimageViewのどちらも必要ありませんが、それらは同じに割り当てられますか?UITableViewCellカスタマイズ、サブビューを添付する場所

私のカスタムビューをUITableViewCellサブクラスに貼り付けるときは、selfまたはself.contentViewに追加する方が良いでしょうか?

そして、UITableViewCellサブクラスのdrawRectでいくつかのクォーツの描画を行っても構いませんか?

おかげ

答えて

4

完全なカスタムセルを定義するためにUITableViewCellをサブクラス化するとき、どのスタイルを設定するのですか? UITableViewCellStyleDefault?実際にはラベルやimageViewのどちらも必要ありませんが、それらは同じに割り当てられますか?

UITableViewCellの事前定義されたUILabelまたはUIImageViewサブビューのいずれも使用していないので、実際には関係ありません。私はちょうどUITableViewCellStyleDefaultを使用します。 UILabelsまたはUIImageViewが割り当てられているかどうかはわかりません。しかし、UITableViewCell ではなく、にサブビューを作成するよう明示的に指示する方法がないので、私はそれについて心配しません。それらが作成されていても、それらを使用していないので、セルの描画は遅くなることはなく、テーブルをスクロールするときにセルが再利用されるため、一度に数個の余分なオブジェクトを割り当てるだけでは、パフォーマンス。

私のカスタムビューをUITableViewCellサブクラスに貼り付けるときは、selfまたはself.contentViewに追加する方が良いでしょうか?

すべてのコンテンツは、UITableViewCell contentViewに入れる必要があります。これにより、UITableViewが右の索引を持っている場合や、UITableView(またはUITableViewCell)が編集モードになった場合にコンテンツが正しく動作するようになります。

そして、UITableViewCellサブクラス(backgroundのような)でdrawRectでいくつかのクォーツの描画をしてもよろしいですか?

背景は、UITableViewCell backgroundViewプロパティに配置することをお勧めします。だから私はUITableViewCellサブクラス自体で任意の図面を行うことをお勧めしません。 contentViewbackgroundView、およびselectedBackgroundViewのプロパティを使用してください。単純なUIViewサブクラスを作成し、必要に応じてそれをUITableViewCellのbackgroundViewとして設定することができます。

+0

+1良い答えです。 FYIデフォルトラベルは、/が設定されている場合にのみ割り当てられます。 – Rog

+0

ありがとう、backgroundViewの理由は、良い練習、またはUITableViewCellサブクラスのdrawRectの実装がパフォーマンスに悪いためです。 –

0

カスタムUITableViewCellを作成したい場合は、私の経験では、それは、コードの代わりにIBを使用する方がはるかに簡単だということです - あなたは、通常のコードを使用して好む場合でも。私は間違いなく、これらの二つのリンクでご覧になることをお勧めします:
Creating a custom UITableViewCell in iOS 4
Custom UITableViewCell

これはのように聞こえる、まさにあなたが探している - あなたは、ラベルまたはこの画像を使用する必要はありません必要なカスタムUIViewにコンセントを作成することができます。

+0

ありがとう、私はプログラムでそれを行います。あまりにも多くのロジックを隠すためにIBを見つけましたが、いつか私はそれをもっと使うようにしようと思います。 –

+0

@EmanueleFumagalli IBはロジックを非表示にしません。それは、反復的で定型的なUIコードを隠します。迅速なアプリケーション開発が必要な場合は、IBを使用します。 – bandejapaisa

0

どのようなスタイルを設定しますか? UITableViewCellStyleDefault?

あなたの目的によって異なります。最も使用されるスタイルはUITableViewCellStyleDefaultです。 Using Cell Objects in Predefined Styles


が、それは自己への、またはself.contentViewに追加することが良いですか? self.contentViewにサブビューを追加する

developer.apple.com recommends(彼らは特別にcontentViewとしてそれを呼び出します)。


それはまた、あなたの目的に依存

を描くいくつかの石英を行うには、それは大丈夫です。バックグラウンドに画像や色しか使用せず、IBでセルビューをカスタマイズすると、qurtzフレームワークを使用する理由が表示されません。