0

UIView をサブクラス化する目的の c クラス「customTable.h」を作成しました。

次に、XIB でカスタム ビューを作成しました。ID インスペクタに移動し、カスタム クラスの下で、作成したクラスの名前 (customTable) をファイルの所有者として選択しました。xib の customTable ビューに、いくつかの UILabels とサブビューを追加しました。サブビューについては、それを選択してカスタム クラスに移動し、別のカスタム クラス「menuTable」を選択しました。

customTable.h ファイルで、XIB からの menuTable を IBOutlet としてリンクしました。これは、ビューの初期化でアウトレットの構成を実行できるようにするためです。

私が持っているcustomTable.mファイルで:

- (id)init
{
    if(self = [super init])
    {
        [self initialize];
    }
    return self;
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
         [self initialize];
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)aDecoder
{
    if(self = [super initWithCoder:aDecoder])
    {
        [self initialize];
    }
    return self;
}
- (void)initialize
{
    /*some special configuration code for menuTable
    is here */
}

ストーリーボードで、ViewController のビューにサブビューを追加し、サブビューでカスタム クラス「customTable」を使用するようストーリーボードに伝えました。ビューコントローラーの .h ファイルで、このビューを IBOutlet としてリンクしました。

@property (weak, nonatomic) IBOutlet customTable *cView;

シミュレーターで実行すると、ビューコントローラーにサブビューが表示されません。customTable.m ファイルにいくつかのブレーク ポイントを追加し、初期化メソッドが呼び出されています。では、なぜ表示されないのでしょうか。

4

2 に答える 2

0

私はそれを理解したと思います。これが起こった理由は、クラスを作成するときに「ユーザー インターフェイスに XIB を使用」を選択するはずだったからです。

于 2013-11-08T02:53:08.470 に答える