2011-01-08 7 views
0

私はMonteTouchアプリケーションのコンセントに接続されたビューといくつかのコントロールを持つ基本的なView Controllerクラスを持っています。これはカスタムテーブルセルを記述します。このクラスから私は他のすべてのカスタムセルを継承します。それは非常に快適ですが、継承されたクラスがベースのビューとサブビューをインスタンス化して(そして2倍のメモリを食べるかどうか)わからないのですか?View Controllerクラスでビューを継承する:新しいクラスはベースのUIオブジェクトをインスタンス化しますか?

ベースには、3つのUILabelsと2つのボタンを持つUITableViewCellがあります。私はいくつかの共通の機能を基本クラスに入れる必要があったので、それらはアウトレットに接続されています。

継承クラスには同じビューが追加されていますが、手動で追加する必要がありました。それらは、基本クラスのアウトレットと同じ名前を使用してアウトレットに配線されています。

継承されたクラスが実際にベースのUI要素を独自のインスタンスと共にインスタンス化する場合、それを修正してベースのUI要素のみを使用する方法はありますか?

読んでいただきありがとうございます。

答えて

1

私が理解したことに答えようとします。どれどれ。 UITableViewCellを管理するUIViewControllerがあります。 IBでは、セルのいくつかのコントロールをコントローラーに接続します。

私は、同じビューを手動で追加することによって何を意味するのか理解できません。どうしてそうするか?

基本的な表のセルを拡張するためにUIViewControllerから継承した場合は、もちろんベースのすべてのコントロールが含まれます。

他のUIViewを既存のUIViewに追加してテーブルセルを拡張すると、既存のUIViewを上書きしません。

IBのビューをオブジェクトの「シリアライズ」バージョンと考えてください。それらは実際のオブジェクトです。つまり、IBにボタンとラベルがある場合、IBからそのアイテムをロードすると、「新しいUIButton()」と「新しいUILabel()」が実行されます。

継承しているクラスで基本のものは必要ない場合は、継承しないでください。

あなたはオブジェクト指向開発の新人ですか?たぶん、あなたはまず相続、多型、オブジェクト指向の発展の基礎に入るべきですか?それとも、私はあなたが完全に誤解していましたか?

+0

こんにちは、答えに感謝します。私はInterface Builderを初めて使用しています。これは非常に分かりやすいツールです(Visual Studioから来ています)。私がこの質問をしたのは、ビューコントローラの.xib.designer.csファイルに、サブビュー(ボタン、ラベルなど)をインスタンス化するコードがないことです。デザイナーは.xibファイルからインスタンス化の指示を読み込むように見えました。つまり、継承されたView Controllerもxibファイルを継承し、これらのボタン、ラベルなどをインスタンス化することは確実ではありませんでした。 – Kiril

+0

まあ、ここでも同じ問題です。私は多くの長年にわたってVisual Studiolizedされてきたし、XcodeとIBが来た - 何がMESS! :-)しかし、私はMonoTouchに切り替え、私のC#の知識が私を助けてくれたので、数時間で生産性を上げました。 IBに関する限り:はい、非常に奇妙なツールです。すべてのビュー(UIKitで呼び出されるコントロール)は遅延ロードされます。したがって、IBでコンセントを作成し、dsesigner.cs.xibでそのコンセントにアクセスするプロパティがあります。それは本当にXIBファイルのものです。あなたが質問に答えたと思うなら、それを「回答」にチェックしてください。ありがとう。 – Krumelur

関連する問題