1

私はこれがどのように疑問に思っています: ここに画像の説明を入力してください

プログラムで行うことができますか?uitableviewデータソースを設定してFadingTableViewクラスに委任するだけですか?IBでカスタムクラスを設定すると、正確には何が起こっているのでしょうか。

ありがとう。

4

4 に答える 4

3

ここでは、テーブルビューインスタンスが実際にはのインスタンスであることをIBに伝えていますFadingTableView
このテーブルビューをプログラムで作成する場合は、これらの行を使用します

FadingTableView *tableView = [[FadingTableView alloc] init.....];

IBにそのクラスを設定する理由は、IBにオブジェクトがUITableView組み込まれているが、IBに存在しないテーブルビューが必要なため、クラス名をそこに配置して、のFadingTableView代わりにインスタンスを作成するためですUITableView
いいえ、データソースやデリゲートの接続には使用されません。

于 2012-05-15T09:17:34.977 に答える
0

目的を意味するものではないので、質問について詳しく説明してください。xibを介してデータソースとデリゲートを接続することと、クラスを介してプログラムで宣言することの違いを尋ねていると思います。両者の間に大きな違いはありませんが、論理的にはIBActionとIBOutletは、オブジェクトがインターフェイスビルダーを介して定義されたことをコンパイラに知らせるための単なる識別子です(現在、xCodeの新しいバージョンではxcodeと統合されています)。IBOutletが定義されている間、IBActionは無効に定義されています。Appleの定義は次のとおりです。 -

#ifndef IBOutlet
#define IBOutlet 
#endif  

#ifndef 
IBAction #define 
IBAction void 
#endif

どちらもコンパイラの識別子として機能し、特定のメソッドがインターフェイスビルダーを介して定義されていることをコンパイラに通知します。

于 2012-05-15T09:15:30.047 に答える
0

これは、ソースコードで提供したUITableViewのサブクラス(明らかに)を使用し、nibがロードされたときにそれをインスタンス化することです。datasourceITは、接続されているという意味ではありませんdelegate

コードで同じことを行うには、xibファイルからTableViewを削除し、たとえば、、外観、、およびその他すべての属性を手動で設定して、そのxibファイルを表すViewControllerで作成する必要がありますviewDidLoad[[FadingTableView alloc] init…]framedelegatedatasource

于 2012-05-15T09:23:24.677 に答える
0

使用できobject_setClass(tableView, [CustomClass class]);、含める必要があります#include <objc/runtime.h>

于 2014-04-16T07:08:18.770 に答える